estructura de RPC_SECURITY_QOS_V2_A (rpcdce.h)
La estructura de RPC_SECURITY_QOS_V2 define la configuración de calidad de servicio de la versión 2 en un identificador de enlace. Vea Comentarios sobre la disponibilidad de versiones en las ediciones de Windows.
Sintaxis
typedef struct _RPC_SECURITY_QOS_V2_A {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union {
RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
} u;
} RPC_SECURITY_QOS_V2_A, *PRPC_SECURITY_QOS_V2_A;
Miembros
Version
Versión de la estructura RPC_SECURITY_QOS que se usa. En este tema se documenta la versión 2 de la estructura RPC_SECURITY_QOS . Consulte RPC_SECURITY_QOS, RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 y RPC_SECURITY_QOS_V5 para ver otras versiones.
Capabilities
Servicios de seguridad que se proporcionan a la aplicación. Las funcionalidades son un conjunto de marcas que se pueden combinar mediante el operador OR bit a bit.
Valor | Significado |
---|---|
|
Se usa cuando no se necesitan funcionalidades específicas del proveedor. |
|
Especificar esta marca hace que el tiempo de ejecución de RPC solicite la autenticación mutua del proveedor de seguridad. Algunos proveedores de seguridad no admiten la autenticación mutua. Si el proveedor de seguridad no admite la autenticación mutua o no se puede establecer la identidad del servidor, no se puede establecer una llamada de procedimiento remoto a dicho servidor con un error RPC_S_SEC_PKG_ERROR.
Nota RPC se basa en el SSP para indicar qué opciones de seguridad se negociaron correctamente; Rpc a su vez produce un error en cualquier llamada para la que el SSP informa de que no pudo negociar una opción. Sin embargo, se sabe que algunos proveedores de seguridad notifican la negociación correcta de una opción incluso cuando la opción no se negoció correctamente. Por ejemplo, NTLM notificará una negociación correcta de la autenticación mutua por motivos de compatibilidad con versiones anteriores, aunque no admita la autenticación mutua. Compruebe con el SSP concreto que se usa para determinar su comportamiento con respecto a las opciones de seguridad.
|
|
No implementado actualmente. |
|
Acepta las credenciales del cliente incluso si la entidad de certificación (CA) no está en la lista de CA de confianza del servidor. Esta constante solo la usa el SSP de SCHANNEL. |
|
Cuando se especifica, esta marca dirige el tiempo de ejecución rpc en el cliente para omitir un error para establecer un contexto de seguridad que admita la delegación. Normalmente, si el cliente solicita delegación y el sistema de seguridad no puede establecer un contexto de seguridad que admita la delegación, se devuelve el error RPC_S_SEC_PKG_ERROR; cuando se especifica esta marca, no se devuelve ningún error.
Nota No se admite en Windows XP y en ediciones de cliente anteriores, no admitidas en las ediciones de windows 2000 y versiones anteriores del servidor.
|
|
Cuando se especifica, esta marca especifica a RPC que el servidor es local para la máquina que realiza la llamada RPC. En esta situación RPC indica al asignador de puntos de conexión que seleccione solo los puntos de conexión registrados por la entidad de seguridad especificada en los miembros ServerPrincName o Sid (estos miembros están disponibles en RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 y solo RPC_SECURITY_QOS_V5 ). Vea Comentarios para obtener más información.
Nota No se admite en Windows XP y en ediciones de cliente anteriores, no admitidas en las ediciones de windows 2000 y versiones anteriores del servidor.
|
IdentityTracking
Establece el modo de seguimiento de contexto. Debe establecerse en uno de los valores que se muestran en la tabla siguiente.
Valor | Significado |
---|---|
|
El contexto de seguridad solo se crea una vez y nunca se revisa durante toda la comunicación, incluso si el lado cliente lo cambia. Este es el comportamiento predeterminado si no se especifica RPC_SECURITY_QOS_V2. |
|
El contexto se revisa cada vez que se cambia el valor de ModifiedId en el token del cliente. Todos los protocolos usan ModifiedId (consulte la nota).
Windows 2000: Todos los protocolos remotos (todos los protocolos distintos de ncalrpc) usan AuthenticationID, también conocido como LogonId, para realizar un seguimiento de los cambios en la identidad del cliente. El protocolo ncalrpc usa ModifiedId. |
ImpersonationType
Nivel en el que el proceso de servidor puede suplantar al cliente.
Valor | Significado |
---|---|
|
Usa el nivel de suplantación predeterminado. |
|
El cliente no proporciona información de identificación al servidor. El servidor no puede suplantar al cliente ni identificar al cliente. Muchos servidores rechazan las llamadas con este tipo de suplantación. |
|
El servidor puede obtener la identidad del cliente y suplantar al cliente para realizar comprobaciones de lista de Access Control (ACL), pero no puede suplantar al cliente. Consulte Niveles de suplantación para obtener más información.
Nota Algunos proveedores de seguridad pueden tratar este tipo de suplantación como equivalente a RPC_C_IMP_LEVEL_IMPERSONATE.
|
|
El servidor puede suplantar el contexto de seguridad del cliente en su sistema local, pero no en sistemas remotos. |
|
El servidor puede suplantar el contexto de seguridad del cliente mientras actúa en su nombre. El servidor también puede realizar llamadas salientes a otros servidores mientras actúa en nombre del cliente. El servidor puede usar el contexto de seguridad del cliente en otras máquinas para acceder a recursos locales y remotos como cliente. |
AdditionalSecurityInfoType
Especifica el tipo de credenciales adicionales presentes en la unión u . Se admiten las siguientes constantes:
Constantes admitidas | Significado |
---|---|
|
No se pasan credenciales adicionales en la unión u . |
|
El miembro HttpCredentials de la unión u apunta a una estructura RPC_HTTP_TRANSPORT_CREDENTIALS . Este valor solo se puede usar cuando se ncacn_http la secuencia de protocolos. Cualquier otra secuencia de protocolo devuelve RPC_S_INVALID_ARG. |
u
u.HttpCredentials
Conjunto adicional de credenciales que se van a pasar a RPC, en forma de una estructura de RPC_HTTP_TRANSPORT_CREDENTIALS . Se usa cuando el miembro AdditionalSecurityInfoType se establece en RPC_C_AUTHN_INFO_TYPE_HTTP.
Comentarios
En la lista siguiente se define la disponibilidad de las versiones de QOS en varios sistemas operativos Windows:
- Versión 1: Windows 2000 y versiones posteriores.
- Versión 2: Windows XP con Service Pack 1 (SP1) y versiones posteriores.
- Versión 3: Windows Server 2003 y versiones posteriores.
- Versión 4: Windows Vista y versiones posteriores.
- Versión 5: Windows 8 y versiones posteriores.
Las funciones de seguridad del lado cliente RpcBindingInqAuthInfoEx y RpcBindingSetAuthInfo usan la estructura de RPC_SECURITY_QOS para consultar o establecer la calidad de seguridad del servicio para un identificador de enlace.
RPC admite la sugerencia de RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT (no compatible con Windows XP y las ediciones de cliente anteriores, no admitidas en las ediciones de windows 2000 y versiones anteriores del servidor). Esta sugerencia solo se usa cuando se usan puntos de conexión dinámicos y autenticación mutua. Además, no se admite para las secuencias de protocolo ncadg_ . Si esta marca se usa para una secuencia de protocolo de ncadg_ o sin usar la autenticación mutua, se devuelve RPC_S_INVALID_ARG desde la llamada de función RpcBindingSetAuthInfoEx . Esta marca está diseñada para evitar un ataque por denegación de servicio. El uso de esta marca obliga al tiempo de ejecución de RPC a pedir al asignador de puntos de conexión solo los puntos de conexión registrados por la entidad de seguridad especificada en los miembros ServerPrincName o Sid . Esto evita que un atacante en el equipo local intente engañar al cliente RPC para conectarse a un punto de conexión de suplantación de identidad que ha registrado en el asignador de puntos de conexión. Tenga en cuenta que, dado que el ataque solo es local (por ejemplo, desde una máquina de terminal server con muchos usuarios), la marca también funciona solo para las llamadas RPC realizadas localmente.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP con SP1 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Encabezado | rpcdce.h (include Rpc.h) |