서비스 원칙 이름으로 몇 번 씨름했고 Microsoft 설명 만으로는 충분하지 않습니다. 도메인에서 작동하도록 IIS 응용 프로그램을 구성하고 있는데 내 문제 중 일부는 내 사이트를 호스팅하는 응용 프로그램 풀을 실행하는 Windows 서비스 계정에서 http 특정 SPN 을 구성해야 할 필요성과 관련이있는 것 같습니다 .
이 모든 것이 서비스 유형 (MSSQL, http, 호스트, termsrv, wsman 등), Kerberos 인증, Active Directory 컴퓨터 계정 (PCName $), Windows 서비스 계정, SPN 간의 관계를 완전히 이해하지 못한다는 것을 깨달았습니다. , 서비스를 시도하고 액세스하는 데 사용중인 사용자 계정입니다.
누군가 설명을 지나치게 단순화하지 않고 Windows SPN (서비스 원칙 이름)을 설명 할 수 있습니까?
경험이 풍부한 시스템 관리자 / 개발자에게 공감할 수있는 창의적인 비유에 대한 보너스 포인트.
답변
서비스 사용자 이름 에서 개념이다 Kerberos
. 인증 도메인 내의 특정 호스트가 제공하는 특정 서비스의 식별자입니다. SPN의 일반적인 형식은 service class
/ fqdn
@입니다 REALM
(예 🙂 IMAP/mail.example.com@EXAMPLE.COM
. @ 형식으로 사용자를 식별하는 User Principal Name 도 있습니다 (또는 대변인 관계 를 식별하는 / @ ). 은 느슨하게 서비스를위한 프로토콜로 생각 될 수있다. Windows에 기본 제공되는 서비스 클래스 목록은 Microsoft의이 기사에 나열되어 있습니다.user
REALM
user1
user2
REALM
service class
모든 SPN은 등록해야합니다 REALM
의 키 배포 센터 (KDC)와 발행 된 서비스 키를 . setspn.exe
에서 사용할 수 유틸리티 \Support\Tools
미디어를 설치 Windows에서 또는 리소스 키트 다운로드 할 폴더, 컴퓨터 또는 AD 다른 계정의 SPN 조작하는 할당.
사용자가 인증을 위해 Kerberos를 사용하는 서비스 ( “Kerberized”서비스)에 액세스하면 KDC (Windows 환경에서는 Active Directory 도메인 컨트롤러)에서 얻은 암호화 된 티켓이 나타납니다. 티켓은 서비스 키로 암호화됩니다 . 서비스는 티켓을 해독함으로써 주어진 SPN의 키를 소유하고 있음을 증명합니다. Windows 호스트에서 실행되는 서비스는 AD 컴퓨터 계정과 연결된 키를 사용하지만 위에서 언급 한 기본 제공 SPN을 제외하고 Kerberos 프로토콜 SPN을 준수하려면 호스트에서 실행중인 각 Kerberos 서비스에 대해 Active Directory에 SPN을 추가해야합니다. Active Directory에서 SPN은 servicePrincipalName
호스트 컴퓨터 개체의 특성에 저장됩니다 .
자세한 내용은 다음을 참조하십시오 SPN에 대한 Microsoft TechNet 문서 , 켄 HORNSTEIN의 Kerberos를 자주 묻는 질문
답변
yarek의 대답은 훌륭했고 그것을 찬성했지만 주제에 대한 Windows 관련 정보를 조금 더 제공하고 싶거나 일반적인 Kerberos보다 AD에 더 익숙한 사람의 관점에서 비롯되었습니다. 이 주제가 저에게 큰 관심을 끌기 때문입니다.
나는이 사람이 그것을 설명하는 훌륭한 일을했다고 느꼈고, 그의 기사를 읽는 것이 좋습니다. 그러나 여기에 당신의 질문에 대한 간결한 단락이 있습니다 :
“서비스 사용자 이름은 계정 보안 컨텍스트에서 어떤 서비스가 실행되는지 정의합니다. 예를 들어 컴퓨터에있을 수있는 일부 서비스는 파일 서버 / CIFS (Common Internet File System)입니다. 도메인 컨트롤러 인 경우 LDAP가 있습니다. SPN 및 Active Directory Replication SPN 및 FRS SPN 서비스 사용자 이름은 서비스 또는 응용 프로그램이 해당 사용자로 실행되는 경우 사용자 계정에서 정의 할 수 있으며 일반적으로 이러한 유형의 사용자 계정을 “서비스 계정”이라고합니다. “서비스 사용자 이름은 반드시 전체 Active Directory 포리스트에서 고유해야합니다.”
전체 기사는 다음과 같습니다.
http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx