RPC_BINDING_HANDLE_SECURITY_V1_W 구조체(rpcdce.h)
RPC_BINDING_HANDLE_SECURITY_V1 구조에는 RPC 바인딩 핸들을 만드는 기본 보안 옵션이 포함되어 있습니다.
구문
typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_W {
unsigned long Version;
unsigned short *ServerPrincName;
unsigned long AuthnLevel;
unsigned long AuthnSvc;
SEC_WINNT_AUTH_IDENTITY_W *AuthIdentity;
RPC_SECURITY_QOS *SecurityQos;
} RPC_BINDING_HANDLE_SECURITY_V1_W, *PRPC_BINDING_HANDLE_SECURITY_V1_W;
멤버
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 구조체입니다.
설명
이 구조가 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 추적 상태가 동적이고 가장 유형이 "가장"으로 설정되고 인증 수준이 "개인 정보"로 설정됩니다.
- 프로토콜 시퀀스 ncacn_ip_tcp ncacn_ip_udp 및 ncacn_http 보안 이 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 호출 | 현재 스레드 | 현재 스레드 | 현재 스레드 또는 "net use" 설정 | 해당 없음 |
RpcBindingCreate API를 호출하여 빠른 바인딩 핸들을 만드는 경우 특정 보안 설정이 없는 경우 ncalrpc에 대한 기본 ID 추적은 정적입니다.
애플리케이션에서 이러한 API 간에 전환하는 경우 이러한 두 API의 차이점을 알고 있어야 합니다.
바인딩 핸들을 만든 후 RpcBindingSetAuthInfo 및 RpcBindingSetAuthInfoEx API를 사용하여 이 구조로 설정된 바인딩 핸들의 설정을 변경할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
머리글 | rpcdce.h(Rpc.h 포함) |