고유 SPN의 이름 형식

SPN은 등록된 포리스트에서 고유해야 합니다. 고유하지 않으면 인증이 실패합니다. SPN 구문에는 다음 표에 나열된 대로 고유한 이름을 생성하기 위해 필요한 요소 2개와 필요한 경우 사용할 수 있는 두 개의 추가 요소의 네 가지 요소가 있습니다.

<service class>/<host>:<port>/<service name>
요소 Description
"<서비스 클래스>" 서비스의 일반 클래스를 식별하는 문자열입니다. 예: "SqlServer". 웹 서비스의 경우 "www", 디렉터리 서비스의 경우 "ldap"와 같이 잘 알려진 서비스 클래스 이름이 있습니다. 일반적으로 서비스 클래스에 고유한 모든 문자열일 수 있습니다. SPN 구문은 정방향 슬래시(/)를 사용하여 요소를 구분하므로 이 문자는 서비스 클래스 이름에 나타날 수 없습니다.
"<host>" 서비스가 실행 중인 컴퓨터의 이름입니다. 정규화된 DNS 이름 또는 NetBIOS 이름일 수 있습니다. NetBIOS 이름이 포리스트에서 고유하도록 보장되지 않으므로 NetBIOS 이름이 포함된 SPN은 고유하지 않을 수 있습니다.
"<port>" 단일 호스트 컴퓨터에서 동일한 서비스 클래스의 여러 인스턴스를 구분하는 선택적 포트 번호입니다. 서비스에서 해당 서비스 클래스에 대한 기본 포트를 사용하는 경우 이 구성 요소를 생략합니다.
"<서비스 이름>" 서비스 또는 서비스에서 제공하는 도메인에서 제공하는 데이터 또는 서비스를 식별하기 위해 복제 가능 서비스의 SPN에 사용되는 선택적 이름입니다. 이 구성 요소에는 다음 형식 중 하나가 있을 수 있습니다.
  • SCP(서비스 연결 지점)와 같이 Active Directory Domain Services 개체의 고유 이름 또는 objectGUID입니다.
  • 도메인 전체에 대해 지정된 서비스를 제공하는 서비스에 대한 도메인의 DNS 이름입니다.
  • SRV 또는 MX 레코드의 DNS 이름입니다.

 

서비스의 SPN에 있는 구성 요소는 서비스를 식별하고 복제하는 방법에 따라 달라집니다. 호스트 기반 서비스 및 복제 가능한 서비스의 두 가지 기본 시나리오가 있습니다.

호스트 기반 서비스

호스트 기반 서비스의 경우 서비스가 서비스 클래스 및 서비스가 설치된 호스트 컴퓨터의 이름으로 고유하게 식별되므로 "<서비스 이름>" 구성 요소가 생략됩니다.

<service class>/<host>

서비스 클래스만으로도 서비스에서 제공하는 기능을 클라이언트에 대해 식별할 수 있습니다. 여러 컴퓨터에 서비스 클래스의 인스턴스를 설치할 수 있으며 각 instance 호스트 컴퓨터로 식별되는 서비스를 제공합니다. FTP 및 텔넷은 호스트 기반 서비스의 예입니다. 서비스가 기본이 아닌 포트를 사용하거나 호스트에 서비스의 여러 인스턴스가 있는 경우 호스트 기반 서비스 instance SPN에는 포트 번호가 포함될 수 있습니다.

<service class>/<host>:<port>

복제 가능 서비스

복제 가능한 서비스의 경우 서비스(복제본)의 인스턴스가 하나 이상 있을 수 있으며 클라이언트는 각각 동일한 서비스를 제공하기 때문에 연결할 복제본(replica) 구분하지 않습니다. 각 복제본(replica) SPN에는 동일한 "<서비스 클래스>" 및 "<서비스 이름>" 구성 요소가 있습니다. 여기서 "<서비스 이름>"은 서비스에서 제공하는 기능을 보다 구체적으로 식별합니다. "<호스트>" 및 선택적 "<포트>" 구성 요소만 SPN마다 다릅니다.

<service class>/<host>:<port>/<service name>

복제 가능한 서비스의 예로는 지정된 데이터베이스에 대한 액세스를 제공하는 데이터베이스 서비스의 instance 있습니다. 이 경우 "<서비스 클래스>"는 데이터베이스 애플리케이션을 식별하고 "<서비스 이름>"은 특정 데이터베이스를 식별합니다. "<서비스 이름>"은 데이터베이스에 대한 연결 데이터를 포함하는 SCP(서비스 연결 지점)의 고유 이름일 수 있습니다.

MyDBService/host1.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host2.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host3.example.com/CN=hrdb,OU=mktg,DC=example,DC=com

클라이언트가 NetBIOS 이름을 사용하여 서비스의 SPN을 구성하는 경우 각 복제본(replica) NetBIOS 이름을 포함하는 SPN도 등록해야 합니다.

MyDBService/host1/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host2/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host3/CN=hrdb,OU=mktg,DC=example,DC=com

복제 가능한 서비스의 또 다른 예는 전체 도메인에 서비스를 제공하는 서비스입니다. 이 경우 "<서비스 이름>" 구성 요소는 제공되는 도메인의 DNS 이름입니다. Kerberos KDC는 이러한 유형의 복제 가능 서비스의 예입니다.

컴퓨터의 DNS 이름이 변경되면 시스템에서 포리스트의 해당 호스트에 등록된 모든 SPN에 대해 "<호스트>" 요소를 업데이트합니다.