RpcServerRegisterAuthInfo 함수(rpcdce.h)
RpcServerRegisterAuthInfo 함수는 RPC 런타임 라이브러리에 인증 정보를 등록합니다.
구문
RPC_STATUS RpcServerRegisterAuthInfo(
RPC_CSTR ServerPrincName,
unsigned long AuthnSvc,
RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
void *Arg
);
매개 변수
ServerPrincName
AuthnSvc 매개 변수로 지정된 서비스를 사용하여 원격 프로시저 호출을 인증할 때 서버에 사용할 주체 이름에 대한 포인터입니다. 이름 및 해당 구문의 콘텐츠는 사용 중인 인증 서비스에 의해 정의됩니다. 자세한 내용은 보안 주체 이름을 참조하세요.
AuthnSvc
서버가 원격 프로시저 호출에 대한 요청을 수신할 때 사용할 인증 서비스입니다.
GetKeyFn
암호화 키를 반환하는 서버 애플리케이션 제공 루틴의 주소입니다. RPC_AUTH_KEY_RETRIEVAL_FN 참조하세요.
암호화 키 획득의 기본 방법을 사용하도록 NULL 매개 변수 값을 지정합니다. 이 경우 인증 서비스는 기본 동작을 지정합니다. RPC_C_AUTHN_WINNT 인증 서비스를 사용할 때 이 매개 변수를 NULL 로 설정합니다.
인증 서비스 | GetKeyFn | Arg | 런타임 동작 |
---|---|---|---|
RPC_C_AUTHN_DPA | 무시됨 | 무시됨 | 지원되지 않음 |
RPC_C_AUTHN_GSS_KERBEROS | 무시됨 | 무시됨 | 지원되지 않음 |
RPC_C_AUTHN_GSS_NEGOTIATE | 무시됨 | 무시됨 | 지원되지 않음 |
RPC_C_AUTHN_GSS_SCHANNEL | 무시됨 | 무시됨 | 지원되지 않음 |
RPC_C_AUTHN_MQ | 무시됨 | 무시됨 | 지원되지 않음 |
RPC_C_AUTHN_MSN | 무시됨 | 무시됨 | 지원되지 않음 |
RPC_C_AUTHN_WINNT | 무시됨 | 무시됨 | 지원되지 않음 |
RPC_C_AUTHN_DCE_PRIVATE | NULL | null이 아닌 경우 | 지정된 키 테이블에서 암호화 키 획득의 기본 메서드를 사용합니다. 지정된 인수는 기본 획득 함수로 전달됩니다. |
RPC_C_AUTHN_DCE_PRIVATE | null이 아닌 경우 | NULL | 지정된 암호화 키 획득 함수를 사용하여 기본 키 테이블에서 키를 가져옵니다. |
RPC_C_AUTHN_DCE_PRIVATE | null이 아닌 경우 | null이 아닌 경우 | 지정된 암호화 키 획득 함수를 사용하여 지정된 키 테이블에서 키를 가져옵니다. 지정된 인수는 획득 함수에 전달됩니다. |
RPC_C_AUTHN_DEC_PUBLIC | 무시됨 | 무시됨 | 다음에 사용하도록 예약됩니다. |
RPC 런타임 라이브러리는 RpcServerRegisterAuthInfo의 ServerPrincName 매개 변수 값을 ServerPrincName 매개 변수 값으로 GetKeyFn 획득 함수에 전달합니다. RPC 런타임 라이브러리는 키 버전(KeyVer) 매개 변수에 대한 값을 자동으로 제공합니다. KeyVer 매개 변수 값이 0인 경우 획득 함수는 사용 가능한 최신 키를 반환해야 합니다. 검색 함수는 Key 매개 변수의 인증 키를 반환합니다.
RpcServerRegisterAuthInfo에서 호출된 획득 함수가 RPC_S_OK 이외의 상태 반환하는 경우 이 함수는 실패하고 서버 애플리케이션에 오류 코드를 반환합니다. 클라이언트의 원격 프로시저 호출 요청을 인증하는 동안 RPC 런타임 라이브러리에서 호출한 획득 함수가 RPC_S_OK 이외의 상태 반환하면 요청이 실패하고 RPC 런타임 라이브러리가 클라이언트 애플리케이션에 오류 코드를 반환합니다.
Arg
지정한 경우 GetKeyFn 루틴에 전달할 매개 변수에 대한 포인터입니다. 인증 서비스가 SCHANNEL로 설정된 경우 이 매개 변수를 사용하여 SCHANNEL_CRED 구조에 대한 포인터를 전달하여 명시적 자격 증명을 지정할 수도 있습니다.
Arg 매개 변수가 NULL로 설정된 경우 이 함수는 디렉터리 서비스에서 설정된 경우 기본 인증서 또는 자격 증명을 사용합니다.
반환 값
값 | 의미 |
---|---|
|
호출이 성공했습니다. |
|
인증 서비스를 알 수 없습니다. |
설명
서버 애플리케이션은 RpcServerRegisterAuthInfo 를 호출하여 원격 프로시저 호출을 인증하는 데 사용할 인증 서비스를 등록합니다. 서버는 서버가 등록하려는 각 인증 서비스에 대해 이 루틴을 한 번 호출합니다. 서버가 지정된 인증 서비스에 대해 이 함수를 두 번 이상 호출하면 결과가 정의되지 않습니다.
클라이언트 애플리케이션이 지정하는 인증 서비스( RpcBindingSetAuthInfo 또는 RpcServerRegisterAuthInfo 사용)는 서버 애플리케이션에서 지정한 인증 서비스 중 하나여야 합니다. 그렇지 않으면 클라이언트의 원격 프로시저 호출이 실패하고 RPC_S_UNKNOWN_AUTHN_SERVICE 상태 코드가 반환됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | rpcdce.h(Rpc.h 포함) |
라이브러리 | Rpcrt4.lib |
DLL | Rpcrt4.dll |