다음을 통해 공유


RPC_BINDING_HANDLE_SECURITY_V1_A 구조체(rpcdce.h)

RPC_BINDING_HANDLE_SECURITY_V1 구조에는 RPC 바인딩 핸들을 만드는 기본 보안 옵션이 포함되어 있습니다.

구문

typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_A {
  unsigned long             Version;
  unsigned char             *ServerPrincName;
  unsigned long             AuthnLevel;
  unsigned long             AuthnSvc;
  SEC_WINNT_AUTH_IDENTITY_A *AuthIdentity;
  RPC_SECURITY_QOS          *SecurityQos;
} RPC_BINDING_HANDLE_SECURITY_V1_A, *PRPC_BINDING_HANDLE_SECURITY_V1_A;

멤버

Version

이 구조체의 버전입니다. RPC_BINDING_HANDLE_SECURITY_V1 경우 1로 설정해야 합니다.

ServerPrincName

바인딩 핸들에서 참조하는 서버 보안 주체 이름을 포함하는 문자열에 대한 포인터입니다. 이름 및 해당 구문의 콘텐츠는 사용 중인 인증 서비스에 의해 정의됩니다.

AuthnLevel

이 바인딩 핸들을 사용하여 수행된 원격 프로시저 호출에서 수행할 인증 수준입니다. RPC 지원 인증 수준 목록은 인증 수준 상수를 참조하세요.

AuthnSvc가 RPC_C_AUTHN_NONE 설정된 경우 이 멤버도 마찬가지로 RPC_C_AUTHN_NONE 설정해야 합니다.

AuthnSvc

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

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

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

AuthnLevel이 RPC_C_AUTHN_NONE 설정된 경우 이 멤버도 마찬가지로 RPC_C_AUTHN_NONE 설정해야 합니다.

AuthIdentity

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

SecurityQos

바인딩 핸들에 대한 서비스 품질 보안 설정을 포함하는 RPC_SECURITY_QOS 구조체입니다.

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

설명

이 구조체가 RpcBindingCreate에 전달되지 않는 경우, 즉 RpcBindingCreate보안 매개 변수가 NULL로 설정된 경우 다음과 같은 기본 보안 동작이 가정됩니다.

  • 프로토콜 시퀀스 ncalrpc(로컬 RPC)의 경우 RPC는 전송 수준 보안을 사용합니다. 즉, RPC는 Windows 커널에서 제공하는 보안 메커니즘을 사용하여 보안을 제공하고 RPC는 현재 스레드 ID를 사용하여 연결되므로 서버를 인증하지 않습니다. 이 경우 ID 추적이 정적이며 가장 유형이 "가장"으로 설정되고 인증 수준이 "개인 정보"로 설정됩니다.
  • 프로토콜 시퀀스 ncacn_np RPC는 전송 수준 보안도 사용합니다. 호출이 원격인 경우 RPC는 Windows 파일 시스템 리렉터에서 제공하는 보안 메커니즘을 사용하며 상호 인증이 없습니다. 이 경우 ID는 현재 스레드 ID이고, ID 추적 상태는 정적이며, 가장 유형은 "가장"으로 설정되고, 인증 수준은 원격 컴퓨터의 정책에 따라 결정됩니다.

    호출이 로컬인 경우 RPC는 NPFS(명명된 파이프 파일 시스템)에서 제공하는 보안 메커니즘을 사용하며 상호 인증도 없습니다. 이 경우 ID는 현재 스레드 ID 또는 서버에 대한 "net use" 명령을 통해 설정된 ID입니다. ID 추적 상태는 동적이고 가장 유형은 "Impersonate"로 설정되며 인증 수준은 "개인 정보"로 설정됩니다.

  • ncacn_ip_udp 및 ncacn_http ncacn_ip_tcp 프로토콜 시퀀스의 경우 보안NULL로 설정된 경우 보안이 사용되지 않습니다. 서버는 가장을 수행하지 않으며 모든 데이터는 명확한 텍스트로 전송됩니다. 데이터에 대한 최대 보호를 제공하려면 애플리케이션이 항상 보안 데이터를 제공해야 합니다.

다음 표에서는 RpcBindingCreate의 Security 매개 변수가 NULL로 설정된 경우 다양한 프로토콜 시퀀스에 대한 기본 보안 설정을 요약합니다.

기본 보안 설정 ncalrpc 로컬 ncacn_np 원격 ncacn_np ncacn_ip_tcp, ncacn_ip_udp 및 ncacn_http
보안 메커니즘 Windows 커널 NPFS 파일 시스템 리다이렉터 없음
인증 수준 개인 정보 취급 방침 개인 정보 취급 방침 서버 정책 종속 없음
상호 인증? 아니요 아니요 No
가장 유형 Impersonate Impersonate Impersonate 해당 없음
ID 추적 유형 정적 동적 정적 해당 없음
유효만? Yes 해당 없음 해당 없음
호출 ID 현재 스레드 현재 스레드 현재 스레드 또는 "순 사용" 설정 해당 없음
 
참고RpcBindingFromStringBinding API를 호출하여 바인딩 핸들을 만드는 경우 특정 보안 설정이 없는 경우 ncalrpc에 대한 기본 ID 추적은 동적입니다.

RpcBindingCreate API를 호출하여 빠른 바인딩 핸들을 만드는 경우 특정 보안 설정이 없는 경우 ncalrpc에 대한 기본 ID 추적은 정적입니다.

애플리케이션에서 두 API 간에 전환하는 경우 이러한 두 API의 차이점을 알고 있어야 합니다.

바인딩 핸들을 만든 후 RpcBindingSetAuthInfoRpcBindingSetAuthInfoEx API를 사용하여 이 구조체로 설정된 바인딩 핸들의 설정을 변경할 수 있습니다.

 

요구 사항

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

추가 정보

RPC_BINDING_HANDLE

RpcBindingBind

RpcBinding만들기