estructura RPC_SECURITY_QOS_V4_A (rpcdce.h)

La estructura de RPC_SECURITY_QOS_V4 define la configuración de calidad de servicio de seguridad de la versión 4 en un identificador de enlace. Vea Comentarios sobre la disponibilidad de versiones en las ediciones de Windows.

Sintaxis

typedef struct _RPC_SECURITY_QOS_V4_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;
} RPC_SECURITY_QOS_V4_A, *PRPC_SECURITY_QOS_V4_A;

Members

Version

Versión de la estructura RPC_SECURITY_QOS que se usa. En este tema se documenta la versión 4 de la estructura de RPC_SECURITY_QOS . Consulte RPC_SECURITY_QOS, RPC_SECURITY_QOS_V2, RPC_SECURITY_QOS_V3 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
RPC_C_QOS_CAPABILITIES_DEFAULT
No se necesitan funcionalidades específicas del proveedor.
RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH
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.
 
RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC
No implementado actualmente.
RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY
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.
RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE
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.
 
RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT
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
RPC_C_QOS_IDENTITY_STATIC
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_V4.
RPC_C_QOS_IDENTITY_DYNAMIC
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
RPC_C_IMP_LEVEL_DEFAULT
Usa el nivel de suplantación predeterminado.
RPC_C_IMP_LEVEL_ANONYMOUS
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.
RPC_C_IMP_LEVEL_IDENTIFY
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.
 
RPC_C_IMP_LEVEL_IMPERSONATE
El servidor puede suplantar el contexto de seguridad del cliente en su sistema local, pero no en sistemas remotos.
RPC_C_IMP_LEVEL_DELEGATE
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
0
No se pasan credenciales adicionales en la unión u .
RPC_C_AUTHN_INFO_TYPE_HTTP
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.

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 ediciones de Windows también admiten versiones de nivel inferior. Por ejemplo, Windows Server 2003 admite la versión 3, pero también admite las versiones 1 y 2.

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.

Nota Algunos proveedores de seguridad, como Kerberos, admiten el tipo de suplantación de delegación. En las ediciones de Windows que admiten el tipo de suplantación de delegación, si el cliente ha solicitado delegación, pero el proveedor de seguridad no puede proporcionarla, se produce un error en la llamada con PRC_S_SEC_PKG_ERROR a menos que se especifique la marca de RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE.
 

Requisitos

   
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)

Consulte también

RPC_BINDING_HANDLE_SECURITY_V1

RPC_HTTP_TRANSPORT_CREDENTIALS

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

RPC_SECURITY_QOS_V5

RpcBindingInqAuthInfoEx

RpcBindingSetAuthInfoEx