다음을 통해 공유


클라이언트 인증 자격 증명

인증된 각 클라이언트는 서버에 인증 자격 증명을 제공해야 합니다. RPC에서 클라이언트는 클라이언트와 서버 간의 바인딩에 인증 자격 증명을 저장합니다. 이렇게 하려면 클라이언트는 RpcBindingSetAuthInfo 또는 RpcBindingSetAuthInfoEx호출합니다.

암시적 자격 증명과 명시적 자격 증명의 두 가지 유형이 있습니다.

  • 명시적 자격 증명은 클라이언트가 사용자 이름, 암호 및 도메인을 제공할 때 존재합니다.
  • 클라이언트가 RpcBindingSetAuthInfo 호출하거나 RpcBindingSetAuthInfoEx 함수를 스레드 또는 프로세스 토큰의 자격 증명을 사용하는 경우 암시적 자격 증명이 존재합니다.

명시적 자격 증명을 사용하는 경우 사용자 암호를 저장, 조작 및 검색하면 분산 시스템에 보안 취약성이 발생할 수 있으므로 클라이언트는 명시적 자격 증명을 제공하지 않아야 합니다.

암시적 자격 증명을 사용하기 위해 클라이언트는 RpcBindingSetAuthInfo(Ex)를 호출합니다. 보안 시스템과 RPC는 인증 세션에서 사용할 스레드 또는 프로세스 토큰에서 자격 증명을 가져옵니다.

클라이언트가 명시적 자격 증명을 사용하는 경우 이러한 두 함수의 다섯 번째 매개 변수는 RPC_AUTH_IDENTITY_HANDLE형식입니다. 데이터 구조에 대한 포인터인 유연한 형식입니다. 데이터 구조의 내용은 각 인증 서비스와 다를 수 있습니다. 현재 RPC에서 지원하는 SSP는 애플리케이션이 SEC_WINNT_AUTH_IDENTITY 구조를 가리키도록 RPC_AUTH_IDENTITY_HANDLE 설정해야 합니다. SEC_WINNT_AUTH_IDENTITY 구조에는 사용자 이름, 도메인 및 암호에 대한 필드가 포함됩니다.