다음을 통해 공유


RPC_HTTP_TRANSPORT_CREDENTIALS_A 구조체(rpcdce.h)

RPC_HTTP_TRANSPORT_CREDENTIALS 구조는 RPC/HTTP를 사용할 때 RPC 프록시 서버에 인증하기 위한 추가 자격 증명을 정의합니다.

구문

typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A {
  SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
  unsigned long             Flags;
  unsigned long             AuthenticationTarget;
  unsigned long             NumberOfAuthnSchemes;
  unsigned long             *AuthnSchemes;
  unsigned char             *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A;

멤버

TransportCredentials

사용자의 사용자 이름, 도메인 및 암호를 포함하는 SEC_WINNT_AUTH_IDENTITY 구조체에 대한 포인터입니다.

Flags

비트 OR 연산자와 결합할 수 있는 플래그 집합입니다.

의미
RPC_C_HTTP_FLAG_USE_SSL
RPC에 SSL을 사용하여 RPC 프록시와 통신하도록 지시합니다.
RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME
설정되면 RPC는 AuthnSchemes 배열에서 첫 번째 체계를 선택하고 RPC 프록시에 대한 인증을 시도합니다. RPC 프록시가 선택한 인증 체계를 지원하지 않으면 호출이 실패합니다. 설정되지 않은 경우 RPC 클라이언트는 지원되는 인증 체계에 대해 RPC 프록시를 쿼리하고 하나를 선택합니다.

AuthenticationTarget

인증 대상을 지정합니다.

다음 값 중 하나 또는 둘 다로 설정해야 합니다.

의미
RPC_C_HTTP_AUTHN_TARGET_SERVER
HTTP 관점에서 HTTP 서버인 RPC 프록시에 대해 인증합니다. 가장 일반적인 값입니다.
RPC_C_HTTP_AUTHN_TARGET_PROXY
HTTP 프록시에 대해 인증합니다. 이 값은 일반적이지 않습니다.

NumberOfAuthnSchemes

AuthnScheme 배열의 요소 수입니다.

AuthnSchemes

ServerCertificateSubject

서버 보안 주체 이름이 필요한 선택적 문자열을 포함합니다. 보안 주체 이름은 RpcCertGeneratePrincipalName 에 대해 생성된 것과 동일한 형식입니다(자세한 내용은 보안 주체 이름 참조). 이 멤버는 SSL을 사용하는 경우에만 사용됩니다. 이러한 경우 서버 인증서가 생성된 보안 주체 이름에 대해 검사됩니다. 일치하지 않으면 오류가 반환됩니다. 이 멤버를 사용하면 클라이언트가 RPC 프록시를 인증할 수 있습니다.

설명

TransportCredentials 멤버가 NULL이고 인증 체계가 NTLM인 경우 현재 로그온한 사용자의 자격 증명이 사용됩니다. 약한 LM 해시를 통해 네트워크에서 사용자 자격 증명을 노출하지 않도록 하려면 다음 조건 중 하나 또는 둘 다에 해당하는 경우에만 사용자 로그온 자격 증명이 사용됩니다.

  • 호출자는 SSL 사용을 요청하고 ServerCertificateSubject 멤버를 사용했습니다. 이 시나리오는 약한 해시가 사용되는 경우에도 전송 중 및 최종 대상에서 자격 증명이 보호되도록 보장합니다.
  • lncompatibilitylevel 키가 2 이상으로 설정됩니다. 이로 인해 NTLM 보안 공급자는 약한 LM 해시가 아닌 강력한 NT 해시만 내보내거나 응답합니다. 또한 고객은 NTLMv2를 시도하는 수준 3 이상을 사용하는 것이 좋습니다.
RpcBindingSetAuthInfoEx 함수의 유니코드 버전을 사용하는 경우 RPC_HTTP_TRANSPORT_CREDENTIALSSEC_WINNT_AUTH_IDENTITY 구조체의 유니코드 버전도 제공해야 하며 TransportCredentialsFlags 멤버도 SEC_WINNT_AUTH_IDENTITY_UNICODE 설정해야 합니다. RpcBindingSetAuthInfoEx 함수의 ANSI 버전을 사용하는 경우 ANSI 버전의 RPC_HTTP_TRANSPORT_CREDENTIALSSEC_WINNT_AUTH_IDENTITY 구조를 제공해야 하며 TransportCredentialsFlags 멤버를 SEC_WINNT_AUTH_IDENTITY_ANSI 설정해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 SP1이 설치된 Windows XP[데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 rpcdce.h(Rpc.h 포함)

추가 정보

보안 주체 이름

RPC_HTTP_TRANSPORT_CREDENTIALS_V2

RPC_HTTP_TRANSPORT_CREDENTIALS_V3

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

RPC over HTTP를 사용한 원격 프로시저 호출

RpcBindingSetAuthInfoEx

RpcCertGeneratePrincipalName

SEC_WINNT_AUTH_IDENTITY