다음을 통해 공유


서비스가 SPN을 등록하는 방법

클라이언트가 SPN을 사용하여 서비스의 instance 인증하려면 먼저 서비스 instance 로그온하는 데 사용할 사용자 또는 컴퓨터 계정에 SPN을 등록해야 합니다. 일반적으로 SPN 등록은 도메인 관리자 권한으로 실행되는 서비스 설치 프로그램에서 수행됩니다.

호스트 컴퓨터에 서비스 instance 설치하는 서비스 설치 관리자는 일반적으로 다음 절차를 수행합니다.

서비스 instance 대한 SPN을 등록하려면

  1. DsGetSpn 함수를 호출하여 서비스 instance 하나 이상의 고유한 SPN을 만듭니다. 자세한 내용은 고유 SPN의 이름 형식을 참조하세요.
  2. DsWriteAccountSpn 함수를 호출하여 서비스의 로그온 계정에 이름을 등록합니다.

DsWriteAccountSpn 은 SPN을 디렉터리에 있는 사용자 또는 컴퓨터 계정 개체의 속성으로 등록합니다. 사용자컴퓨터 개체에는 사용자 또는 컴퓨터 계정과 연결된 모든 SPN을 저장하기 위한 다중값 특성인 servicePrincipalName 특성이 있습니다. 서비스가 사용자 계정으로 실행되는 경우 SPN은 해당 계정의 servicePrincipalName 특성에 저장됩니다. 서비스가 LocalSystem 계정에서 실행되는 경우 SPN은 서비스 호스트 컴퓨터 계정의 servicePrincipalName 특성에 저장됩니다. DsWriteAccountSpn 호출자는 SPN이 저장되는 계정 개체의 고유 이름을 지정해야 합니다.

등록된 SPN이 안전한지 확인하기 위해 servicePrincipalName 특성을 직접 작성할 수 없습니다. DsWriteAccountSpn을 호출하여 작성할 수 있습니다. 호출자는 대상 계정의 servicePrincipalName 특성에 대한 쓰기 액세스 권한이 있어야 합니다. 일반적으로 쓰기 액세스 권한은 기본적으로 도메인 관리자에게만 부여됩니다. 그러나 시스템에서 LocalSystem 계정으로 실행되는 서비스가 서비스 호스트의 컴퓨터 계정에 자체 SPN을 등록할 수 있도록 허용하는 특별한 경우가 있습니다. 이 경우 작성되는 SPN에는 "서비스 클래스>/호스트" 및 "<<호스트>>" 형식이 로컬 컴퓨터의 DNS 이름이어야< 합니다.

DsWriteAccountSpn은 계정에서 SPN을 제거할 수도 있습니다. 작업 매개 변수는 SPN을 계정에 추가하거나, 계정에서 제거하거나, 계정에 대한 모든 현재 SPN을 완전히 대체하는 데 사용할지 여부를 나타냅니다. 서비스 instance 제거되면 해당 instance 등록된 SPN을 제거합니다.

자세한 내용과 서비스의 SPN을 등록하거나 등록 취소하는 코드 예제는 서비스에 대한 SPN 등록을 참조하세요.

간단한 SPN 형식 "<서비스 클래스>/<호스트>"를 사용하는 호스트 기반 서비스에는 서비스 instance 대한 SPN을 만들고 등록하는 DsServerRegisterSpn 함수를 사용하는 옵션이 있습니다. DsServerRegisterSpnDsGetSpnDsWriteAccountSpn을 호출하는 도우미 함수입니다.

자세한 내용은 서비스 로그온 계정을 참조하세요.