[위 에]Chapter 1 Securing Your Server and Network(9):인증 에 Kerberos 사용
,테마 목록:http://blog.csdn.net/dba_huangzj/article/details/37906349
작가 의 동의 없 이 그 누구 도'오리지널'형식 으로 발표 할 수 없고 상업 용도 로 사용 할 수 없 으 며 본인 은 어떠한 법률 적 책임 도 지지 않 습 니 다.
전편:http://blog.csdn.net/dba_huangzj/article/details/38263043
선언:
활성 디 렉 터 리(Active Directory)에는 NTLM 과 Kerberos 두 가지 인증 메커니즘 이 있 습 니 다.그 중에서 NTLM(NT LAN Manager)은 기 존 암호 화 방식 을 기반 으로 한 권한 수여 프로 토 콜 로 마이크로 소프트 는 재사 용 을 권장 하지 않 는 다.자세 한 내용 은 다음 과 같 습 니 다.http://msdn.microsoft.com/en-us/library/cc236715.aspx
Kerberos 는 MIT(매사 추 세 츠 공과)가 먼저 개발 하고 윈도 2000 부터 도입 하 는 무료 소프트웨어 프로 토 콜 이다.secured tickets(전문 용어 가 발견 되 지 않 음)의 전환 을 통 해 클 라 이언 트 와 서버 를 안전하게 식별 합 니 다.해시 암 호 를 사용 하 는 것 보다 Kerberos 는 보안 암호 화 키 공 유 를 통 해 인증 을 관리 합 니 다.클 라 이언 트 와 인증 서버 가 대칭 키 를 공유 합 니 다.이 중 인증 서버 는 KDC(Key Distribution Center,키 배포 센터)가 되 고 도 메 인 컨트롤 러 서비스 로 실 행 됩 니 다.
로그 인 할 때 클 라 이언 트 는 KDC 에서 Ticket Grant Ticket(TGT)을 요청 한 다음 KDC 에서 클 라 이언 트 표 지 를 포함 하 는 TGT 를 만 들 고 키 가 있 는 세 션 을 클 라 이언 트 에 게 되 돌려 줍 니 다.TGT 의 수명 은 보통 8∼10 시간 에 불과 하 다.시간 이 지나 면 클 라 이언 트 가 자원 에 접근 할 수 없습니다.
서비스 태그(Service ticket)는 대상 자원(예 를 들 어 SQL Server 인 스 턴 스)의 Service Principal Name(SPN,서비스 주체 이름)을 포함해 야 합 니 다.KDC 에서 요청 을 받 으 면 서비스 탭 을 되 돌려 줍 니 다.이 탭 은 클 라 이언 트 가 서버 에 접근 을 요청 하 는 데 사 용 될 것 입 니 다.더 많은 정보 접근 가능:http://technet.microsoft.com/en-us/library/cc772815.aspx
실현:
Kerberos 를 사용 하려 면 도 메 인 환경 에서 서버 의 SPN 이 Active Directory 에 등록 되 어 있어 야 합 니 다.이러한 조건 이 충족 된다 면 Kerberos 는 기본적으로 사용 되 어야 합 니 다.SQL Server 에서 확인 할 수 있 습 니 다.
SELECT auth_scheme, net_transport, client_net_address FROM sys.dm_exec_connections;
연결 이 같은 도 메 인 에서 왔 거나 NTLM 을 사용 하여 권한 을 수 여 받 은 신뢰 할 수 있 는 도 메 인 이 라면 왜 Kerberos 를 사용 하지 않 았 는 지 연구 해 야 합 니 다.SQL Server 가 시 작 될 때 자동 으로 자신의 SPN 을 Active Directory 에 등록 하려 고 시도 합 니 다.SQL Server 서비스 계 정 에 권한 이 없 으 면 SPN 을 만 들 수 없고 Kerberos 권한 수여 도 사용 할 수 없습니다.
SPN 이 등록 되 어 있 는 지 확인 하 십시오.cmd 나 PowerShell 에 아래 명령 을 입력 할 수 있 습 니 다.
setspn.exe -L DOMAIN\<SQL service Account>
본인 환경 아래 그림:
그 중 하 나 를 봐 야 한다.
MSSQLSvc/SQL-A.Contoso.com:1433 --형식:MSSQLSvc/
위의 그림 을 보면 이 정보 가 없 는 것 을 볼 수 있 고 성공 하지 못 했다 는 것 을 증명 할 수 있 기 때문에 다음 그림 의 결 과 는 주간 고삐 가 NTLM 만 권한 을 부여 합 니 다.보통 이 계 정 에'write Public information'이 없어 서 그래 요. 권한기본적으로 SQL Server 서비스 계 정 이 도 메 인 사용자 가 설치 한 경우 이 권한 이 없습니다.
SQL Server 서비스 계 정 을 도 메 인 관리자 로 바 꾸 었 습 니 다.다시 한 번 확인 해 보 니 기대 되 는 결 과 를 얻 었 습 니 다.
SPN 이 등록 되 어 있 지 않 은 것 을 발견 하면 다음 절 차 를 통 해 실행 할 수 있 습 니 다.
1.도 메 인 컨트롤 러 의[관리 도구]에서[ADSI 편집기]를 선택 하 십시오.
2.[기본 이름 컨 텍스트]에 연결 하여 서비스 계 정 을 찾 고[속성]을 오른쪽 클릭 한 다음[안전]페이지 를 선택 하 십시오.
3.SELF 에 게[공공 정보 쓰기]를 부여 하고 SQL Server 서 비 스 를 다시 시작 합 니 다.
이 기 계 는 contoso\mirroadmin 으로 설치 되 고 실행 되 기 때문에 이 계 정 을 선택 하여 권한 을 부여 합 니 다.권한 수여 가 끝 난 후에 다시 조회 하면 이미 Kerberos 가 연결 되 어 있 는 것 을 볼 수 있 습 니 다.
원리:
SPN 은 인 스 턴 스 의 유일한 표지 입 니 다.적당 한 SPN 이 없 으 면 Kerberos 는 서 비 스 를 검증 하고 서비스 탭 을 제공 하여 클 라 이언 트 의 접근 을 허용 할 수 없습니다.따라서 SPN 이 없 으 면 클 라 이언 트 가 사용 할 수 있 는 유일한 인증 방식 은 NTLM 이 고 SPN 은 활성 디 렉 터 리 에 설치 되 어야 하 며 KDC 역할 이 있어 야 합 니 다.
SPN 의 고정 형식:
더 많은 정보:
AD 에[공공 정보 쓰기]를 부여 하지 않 거나 SPN 이 등록 할 수 없 는 이유 가 있 으 면 다음 문 구 를 수 동 으로 실행 할 수 있 습 니 다.
setspn.exe -A MSSQLSvc/SQL-A.Contoso.com:<port> Contoso\SQL-A -- SQL-A ,contoso
Kerberos 문제 에 대한 조 사 는 다음 글 을 읽 을 수 있 습 니 다.
http://blogs.technet.com/b/askds/archive/2008/05/14/troubleshooting-kerberos-authentication-problems-name-resolution-issues.aspx
다음 편:http://blog.csdn.net/dba_huangzj/article/details/38368737
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
깊이 중첩된 객체를 정확히 일치 검색 - PostgreSQL목차 * 🚀 * 🎯 * 🏁 * 🙏 JSON 객체 예시 따라서 우리의 현재 목표는 "고용주"사용자가 입력한 검색어(이 경우에는 '요리')를 얻고 이 용어와 정확히 일치하는 모든 사용자 프로필을 찾는 것입니다. 즐거운 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.