estructura RPC_SECURITY_QOS_V5_A (rpcdce.h)
La estructura de RPC_SECURITY_QOS_V5 define la configuración de calidad de servicio de seguridad de la versión 5 en un identificador de enlace. Vea Comentarios sobre la disponibilidad de versiones en las ediciones de Windows.
Sintaxis
typedef struct _RPC_SECURITY_QOS_V5_A {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union {
RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
} u;
void *Sid;
unsigned int EffectiveOnly;
void *ServerSecurityDescriptor;
} RPC_SECURITY_QOS_V5_A, *PRPC_SECURITY_QOS_V5_A;
Miembros
Version
Versión de la estructura RPC_SECURITY_QOS que se usa. En este tema se documenta la versión 5 de la estructura de RPC_SECURITY_QOS . Consulte RPC_SECURITY_QOS, RPC_SECURITY_QOS_V2, RPC_SECURITY_QOS_V3 y RPC_SECURITY_QOS_V4 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 |
---|---|
|
No se necesitan funcionalidades específicas del proveedor. |
|
El tiempo de ejecución rpc solicita 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 a procedimiento remoto a dicho servidor con el error RPC_S_SEC_PKG_ERROR.
Nota RPC se basa en el SSP para indicar qué opciones de seguridad se negociaron correctamente; A su vez, se produce un error en una llamada RPC si 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. Consulte con el SSP en particular 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 del servidor de entidades de certificación de confianza. Esta constante solo la usa el SSP de SCHANNEL. |
|
El tiempo de ejecución de RPC en el cliente omite 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 servidor de Windows 2000 y anteriores.
|
|
El servidor es local en 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 servidor de Windows 2000 y anteriores.
|
IdentityTracking
Modo de seguimiento de contexto como uno de los valores siguientes.
Valor | Significado |
---|---|
|
El contexto de seguridad se crea solo 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_V5. |
|
El contexto de seguridad 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 los recursos locales y remotos como cliente. |
AdditionalSecurityInfoType
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 de 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.
Sid
Puntero a un identificador de seguridad (SID). El SID es una alternativa al miembro ServerPrincName y solo se puede especificar uno. El miembro Sid no se puede establecer en distinto de NULL si el proveedor de seguridad es el SSP de SCHANNEL. Algunas secuencias de protocolo usan Sid internamente para la seguridad y algunas usan serverPrincName. Por ejemplo, ncalrpc usa un Sid internamente y si el autor de la llamada conoce tanto el SID como serverPrincName, una llamada mediante ncalrpc puede completarse mucho más rápido en algunos casos si se pasa el SID. Por el contrario, las secuencias de protocolo ncacn_ y ncadg_ usan serverPrincName internamente y, por tanto, pueden ejecutar llamadas más rápido cuando se proporciona ServerPrincName.
EffectiveOnly
Si se establece, el servidor solo ve los privilegios habilitados.
ServerSecurityDescriptor
Puntero al SECURITY_DESCRIPTOR que identifica el servidor. Se requiere para la autenticación mutua.
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 8 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2012 [solo aplicaciones de escritorio] |
Encabezado | rpcdce.h (include Rpc.h) |
Consulte también
RPC_BINDING_HANDLE_SECURITY_V1