DsMakeSpnA 함수(dsparse.h)
DsMakeSpn 함수는 서비스 인스턴스를 식별하는 SPN(서비스 사용자 이름)을 생성합니다.
클라이언트 애플리케이션은 이 함수를 사용하여 서비스 인스턴스를 인증하는 데 사용하는 SPN을 구성합니다. 예를 들어 클라이언트는 InitializeSecurityContext 함수의 pszTargetName 매개 변수에서 SPN을 전달할 수 있습니다.
통사론
DSPARSE DWORD DsMakeSpnA(
[in] LPCSTR ServiceClass,
[in] LPCSTR ServiceName,
[in, optional] LPCSTR InstanceName,
[in] USHORT InstancePort,
[in, optional] LPCSTR Referrer,
[in, out] DWORD *pcSpnLength,
[out] LPSTR pszSpn
);
매개 변수
[in] ServiceClass
서비스의 클래스를 지정하는 null로 끝나는 상수 문자열에 대한 포인터입니다. 이 매개 변수는 해당 서비스에 고유한 문자열일 수 있습니다. 프로토콜 이름(예: ldap) 또는 GUID의 문자열 형식이 허용됩니다.
[in] ServiceName
DNS 이름, NetBIOS 이름 또는 고유 이름(DN)을 지정하는 null로 끝나는 상수 문자열에 대한 포인터입니다. 이 매개 변수는 NULL
ServiceName, InstanceName 및 InstancePort 매개 변수를 사용하여 SPN을 구성하는 방법에 대한 자세한 내용은 다음 설명 섹션을 참조하세요.
[in, optional] InstanceName
서비스 인스턴스에 대한 호스트의 DNS 이름 또는 IP 주소를 지정하는 null로 끝나는 상수 문자열에 대한 포인터입니다.
ServiceName DNS 도메인 이름, DNS SRV 레코드의 이름 또는 서비스 연결 지점의 DN과 같은 고유 이름을 지정하는 경우 InstanceName 매개 변수는 서비스 호스트 컴퓨터의 DNS 또는 NetBIOS 이름을 지정해야 합니다.
[in] InstancePort
서비스 인스턴스의 포트 번호입니다. 기본 포트에 0을 사용합니다. 이 매개 변수가 0이면 SPN에 포트 번호가 포함되지 않습니다.
[in, optional] Referrer
IP 주소 조회를 제공한 호스트의 DNS 이름을 지정하는 null로 끝나는 상수 문자열에 대한 포인터입니다. ServiceName 매개 변수가 IP 주소를 지정하지 않는 한 이 매개 변수는 무시됩니다.
[in, out] pcSpnLength
새로 생성된 SPN을 받을 버퍼의 길이(문자)를 포함하는 변수에 대한 포인터입니다. 이 값은 최종 버퍼 크기를 미리 요청하려면 0일 수 있습니다.
pcSpnLength 매개 변수는 종료 null 문자를 포함하여 생성된 SPN의 실제 길이도 수신합니다.
[out] pszSpn
생성된 SPN을 수신하는 null로 끝나는 문자열에 대한 포인터입니다. 이 버퍼는 pcSpnLength지정된 길이여야 합니다.
반환 값
함수가 SPN을 반환하는 경우 반환 값은 ERROR_SUCCESS. 함수가 실패하면 반환 값은 다음 오류 코드 중 하나일 수 있습니다.
발언
DsMakeSpn 함수에서 생성된 SPN의 형식은 입력 매개 변수에 따라 달라집니다. 두 가지 기본 형식이 있습니다. 두 형식 모두 ServiceClass 문자열과 호스트 컴퓨터 이름 및 선택적 InstancePort 구성 요소로 시작합니다.
"<ServiceClass>/<호스트>" 형식이 SPN을 생성하려면
- ServiceName 매개 변수를 서비스 인스턴스에 대한 호스트 컴퓨터의 DNS 이름으로 설정합니다. SPN의 호스트 구성 요소입니다.
InstanceName 및참조자 매개 변수를 NULL설정합니다. -
InstancePort 매개 변수를 0으로 설정합니다.
InstancePort 0이 아닌 경우 SPN의 형식은 다음과 같습니다.
<service class>/<host>:<instance port>/<referrer>
"<ServiceClass>/<호스트>:<InstancePort>" 형식 사용하여 SPN을 생성합니다.
- InstanceName 매개 변수를 서비스 인스턴스에 대한 호스트 컴퓨터의 DNS 이름으로 설정합니다. 호스트 구성 요소입니다.
- ServiceName 매개 변수를 서비스의 인스턴스를 식별하는 문자열로 설정합니다. 예를 들어 이 서비스 인스턴스에 대한 서비스 연결 지점의 고유 이름일 수 있습니다.
Referrer 매개 변수를 NULL설정합니다. -
InstancePort 매개 변수를 0으로 설정합니다.
InstancePort 0이 아닌 경우 SPN의 형식은 다음과 같습니다.
<service class>/<host>:<instance port>/<service name>
<service class>/<host>:<instance port>/<referrer>
여기서
문자열 매개 변수는 SPN의 구성 요소를 구분하는 데 사용되므로 슬래시(/) 문자를 포함할 수 없습니다.
메모
dsparse.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 DsMakeSpn을 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
지원되는 최소 서버 | Windows Server 2008 |
대상 플랫폼 | Windows |
헤더 | dsparse.h(Ntdsapi.h 포함) |
라이브러리 | Ntdsapi.lib |
DLL | Ntdsapi.dll |
참고 항목
InitializeSecurityContext