다음을 통해 공유


RpcBindingSetAuthInfoExA 함수(rpcdce.h)

RpcBindingSetAuthInfoEx 함수는 바인딩 핸들의 인증, 권한 부여 및 보안 서비스 품질 정보를 설정합니다.

통사론

RPC_STATUS RpcBindingSetAuthInfoExA(
  RPC_BINDING_HANDLE       Binding,
  RPC_CSTR                 ServerPrincName,
  unsigned long            AuthnLevel,
  unsigned long            AuthnSvc,
  RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  unsigned long            AuthzSvc,
  RPC_SECURITY_QOS         *SecurityQos
);

매개 변수

Binding

인증 및 권한 부여 정보가 설정된 서버 바인딩 핸들입니다.

ServerPrincName

Binding참조되는 서버의 예상 보안 주체 이름에 대한 포인터입니다. 이름 및 해당 구문의 콘텐츠는 사용 중인 인증 서비스에 의해 정의됩니다.

참고 SSP에 허용되는 대상 이름 집합의 경우 InitializeSecurityContext 설명서의 설명을 참조하세요.
 

AuthnLevel

바인딩사용하여 수행되는 원격 프로시저 호출에서 수행할 인증 수준입니다. RPC 지원 인증 수준 목록은 Authentication-Level 상수참조하세요.

AuthnSvc

사용할 인증 서비스입니다.

바인딩사용하여 수행한 원격 프로시저 호출에 대한 인증을 해제하는 RPC_C_AUTHN_NONE 지정합니다.

RPC_C_AUTHN_DEFAULT 지정되면 RPC 런타임 라이브러리는 바인딩사용하여 수행한 원격 프로시저 호출에 RPC_C_AUTHN_WINNT 인증 서비스를 사용합니다.

AuthIdentity

선택한 인증 및 권한 부여 서비스에 적합한 클라이언트의 인증 및 권한 부여 자격 증명을 포함하는 구조에 대한 핸들입니다.

RPC_C_AUTHN_WINNT 인증 서비스 AuthIdentity 사용하는 경우 SEC_WINNT_AUTH_IDENTITY 구조(Rpcdce.h에 정의됨)에 대한 포인터여야 합니다. Kerberos 및 협상 인증 서비스도 SEC_WINNT_AUTH_IDENTITY 구조를 사용합니다.

현재 주소 공간에 대한 보안 로그인 컨텍스트를 사용하도록 null 값을 지정합니다. RPC_C_NO_CREDENTIALS 값을 전달하여 익명 로그인 컨텍스트를 사용합니다. RPC_C_NO_CREDENTIALS RPC_C_AUTHN_GSS_SCHANNEL 인증 서비스로 선택된 경우에만 유효합니다.

AuthzSvc

관심 있는 인터페이스를 위해 서버에서 구현한 권한 부여 서비스입니다. 모든 애플리케이션 데이터와 마찬가지로 권한 부여 데이터의 유효성 및 신뢰성은 선택한 인증 서비스 및 인증 수준에 따라 달라집니다. 이 매개 변수는 RPC_C_AUTHN_WINNT 인증 서비스를 사용할 때 무시됩니다. 참고를 참조하세요.

SecurityQos

서비스 품질 보안을 정의하는 RPC_SECURITY_QOS 구조에 대한 포인터입니다.

참고 RPC 지원 인증 서비스 목록은 Authentication-Service 상수참조하세요.
 

반환 값

의미
RPC_S_OK
호출이 성공했습니다.
RPC_S_INVALID_BINDING
바인딩 핸들이 잘못되었습니다.
RPC_S_WRONG_KIND_OF_BINDING
이것은 작업에 대한 잘못된 종류의 바인딩이었습니다.
RPC_S_UNKNOWN_AUTHN_SERVICE
알 수 없는 인증 서비스입니다.
 
참고 유효한 오류 코드 목록은 RPC 반환 값참조하세요.
 

발언

클라이언트 애플리케이션은 RpcBindingSetAuthInfoEx 함수를 호출하여 인증된 원격 프로시저 호출을 위한 서버 바인딩 핸들을 설정합니다. 이 함수는 바인딩 핸들에 대한 보안 서비스 품질 정보를 설정하는 기능을 제공합니다. 그렇지 않으면 RpcBindingSetAuthInfo동일합니다.

클라이언트가 RpcBindingSetAuthInfoEx호출하지 않는 한 Binding 대한 모든 원격 프로시저 호출은 인증되지 않습니다. 클라이언트는 이 함수를 호출할 필요가 없습니다.

RpcBindingSetAuthInfoEx 함수는 자격 증명의 스냅샷을 만듭니다. 따라서 AuthIdentity 매개 변수 전용 메모리를 바인딩 핸들 전에 해제할 수 있습니다. 예외는 애플리케이션이 RPC_C_QOS_IDENTITY_DYNAMIC RpcBindingSetAuthInfoEx 사용하고 AuthIdentityNULL 값을 지정하는 경우입니다.

참고 동일한 핸들에서 RPC 호출이 진행되는 동안 바인딩 핸들에서 RpcBindingSetAuthInfo 함수를 호출해서는 안 됩니다. 이렇게 하면 정의되지 않은 결과가 생성됩니다.
 
다양한 버전의 Microsoft RPC 요구 사항으로 인해 바인딩 핸들이 있는 한 애플리케이션에서 AuthIdentity 매개 변수에 대한 포인터를 유지하는 것이 좋습니다. 이렇게 하면 애플리케이션 이식성이 향상됩니다.

SP1이 있는 Windows Server 2003 및 WINDOWS XP SP2를 사용하는 Windows Server 2003: Windows XP SP2 및 Windows Server 2003 SP1의 경우 AuthIdentity 매개 변수에 대한 포인터는 바인딩 핸들의 수명 동안 유지 관리할 필요가 없습니다. 이 포인터는 RpcBindingInqAuthInfo 또는 RpcBindingInqAuthInfoEx 후속 호출이 수행되는 경우에만 유지 관리되어야 합니다.

참고ncalrpc 프로토콜 시퀀스는 RPC_C_AUTHN_WINNT만 지원하지만 상호 인증을 지원합니다. 는 SPN을 제공하고 이를 위해 SecurityQOS 매개 변수를 통해 상호 인증을 요청합니다.
 

메모

rpcdce.h 헤더는 RpcBindingSetAuthInfoEx를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한 규칙을 참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 rpcdce.h(Rpc.h 포함)
라이브러리 Rpcrt4.lib
DLL Rpcrt4.dll

참고 항목

RPC_SECURITY_QOS

RpcBindingInqAuthInfoEx

RpcServerRegisterAuthInfo