estructura de RPC_BINDING_HANDLE_SECURITY_V1_A (rpcdce.h)
La estructura RPC_BINDING_HANDLE_SECURITY_V1 contiene las opciones de seguridad básicas con las que crear un identificador de enlace RPC.
Sintaxis
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;
Miembros
Version
Versión de esta estructura. Para RPC_BINDING_HANDLE_SECURITY_V1 debe establecerse en 1.
ServerPrincName
Puntero a una cadena que contiene el nombre principal del servidor al que hace referencia el identificador de enlace. El contenido del nombre y su sintaxis se definen mediante el servicio de autenticación en uso.
AuthnLevel
Nivel de autenticación que se va a realizar en las llamadas a procedimientos remotos realizadas mediante este identificador de enlace. Para obtener una lista de los niveles de autenticación compatibles con RPC, consulte Constantes de nivel de autenticación.
Si AuthnSvc está establecido en RPC_C_AUTHN_NONE, este miembro también debe establecerse en RPC_C_AUTHN_NONE.
AuthnSvc
Servicio de autenticación que se va a usar al enlazar.
Especifique RPC_C_AUTHN_NONE para desactivar la autenticación para las llamadas a procedimientos remotos realizadas mediante el identificador de enlace.
Si se especifica RPC_C_AUTHN_DEFAULT, la biblioteca en tiempo de ejecución rpc usa el servicio de autenticación de RPC_C_AUTHN_WINNT para las llamadas a procedimientos remotos realizadas mediante el identificador de enlace.
Si AuthnLevel está establecido en RPC_C_AUTHN_NONE, este miembro también debe establecerse en RPC_C_AUTHN_NONE.
AuthIdentity
SEC_WINNT_AUTH_IDENTITY estructura que contiene las credenciales de autenticación y autorización del cliente adecuadas para el servicio de autenticación y autorización seleccionados.
SecurityQos
RPC_SECURITY_QOS estructura que contiene la configuración de calidad de servicio de seguridad para el identificador de enlace.
Comentarios
Si esta estructura no se pasa a RpcBindingCreate , es decir, si el parámetro Security de RpcBindingCreate se establece en NULL , se asumen los siguientes comportamientos de seguridad predeterminados:
- Para la secuencia de protocolo ncalrpc (RPC local), RPC usará la seguridad de nivel de transporte. Esto significa que RPC usará los mecanismos de seguridad ofrecidos por el kernel de Windows para proporcionar seguridad y RPC no autenticará el servidor, ya que se conecta mediante la identidad del subproceso actual. En este caso, el seguimiento de identidades es estático, el tipo de suplantación se establece en "Suplantar" y el nivel de autenticación se establece en "Privacidad".
- Para la secuencia de protocolos ncacn_np, RPC también usará la seguridad de nivel de transporte. Si la llamada es remota, RPC usa los mecanismos de seguridad proporcionados por el redirector del sistema de archivos de Windows y no hay autenticación mutua. En este caso, la identidad es la identidad del subproceso actual, el estado de seguimiento de identidades es estático, el tipo de suplantación se establece en "Suplantar" y el nivel de autenticación viene determinado por las directivas de la máquina remota.
Si la llamada es local, RPC usa los mecanismos de seguridad proporcionados por el sistema de archivos de canalización con nombre (NPFS) y tampoco hay autenticación mutua. En este caso, la identidad es la identidad del subproceso actual o cualquier identidad establecida mediante el comando "net use" para el servidor. El estado de seguimiento de identidades es dinámico, el tipo de suplantación se establece en "Suplantar" y el nivel de autenticación se establece en "Privacidad".
- Para las secuencias de protocolo ncacn_ip_tcp, ncacn_ip_udp y ncacn_http, no se usa ninguna seguridad cuando Security se establece en NULL. El servidor no realizará la suplantación y todos los datos se enviarán como texto no cifrado. Para proporcionar la máxima protección para los datos, la aplicación siempre debe proporcionar datos de seguridad.
En la tabla siguiente se resume la configuración de seguridad predeterminada de las distintas secuencias de protocolo si el parámetro Security de RpcBindingCreate se establece en NULL.
Configuración de seguridad predeterminada | ncalrpc | ncacn_np local | ncacn_np remoto | ncacn_ip_tcp, ncacn_ip_udp y ncacn_http |
---|---|---|---|---|
Mecanismo de seguridad | Windows Kernel | NPFS | Redirector del sistema de archivos | None |
Nivel de autenticación | Privacidad | Privacidad | Dependiente de la directiva de servidor | None |
¿Autenticación mutua? | No | No | No | No |
Tipo de suplantación | Impersonate | Impersonate | Impersonate | N/D |
Tipo de seguimiento de identidades | Estático | Dinámica | estática | N/D |
¿Solo efectivo? | Sí | No | N/D | N/D |
Identidad de llamada | Subproceso actual | Subproceso actual | Configuración actual de subproceso o "net use" | N/D |
Si crea un identificador de enlace rápido mediante una llamada a la API RpcBindingCreate , el seguimiento de identidades predeterminado para ncalrpc en ausencia de una configuración de seguridad específica es estática.
Debe tener en cuenta las diferencias en estas dos API si cambia entre ellas en la aplicación.
Una vez creado el identificador de enlace, se pueden usar las API RpcBindingSetAuthInfo y RpcBindingSetAuthInfoEx para cambiar la configuración del conjunto de identificadores de enlace con esta estructura.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Encabezado | rpcdce.h (include Rpc.h) |