Requisitos de contexto

Los requisitos de contexto se expresan como una combinación de marcas de bits pasadas a la función InitializeSecurityContext (General) o AcceptSecurityContext (General). Estas marcas afectan al contexto de varias maneras. No todas las marcas se aplican a todos los contextos. Algunos solo son válidos para el servidor, otros solo para el cliente.

El llamador usa el parámetro fContextReq de la llamada InitializeSecurityContext (General) o AcceptSecurityContext (General) para especificar un conjunto de marcas que indican las funcionalidades necesarias. Cuando la función devuelve, el parámetro pfContextAttr indica los atributos del contexto establecido. El autor de la llamada determina si los atributos de contexto finales son aceptables.

Las marcas solicitadas desde o devueltas por InitializeSecurityContext (General) tienen el prefijo ISC. Los solicitados desde o devueltos por AcceptSecurityContext (General) tienen el prefijo ASC. Las marcas pasadas a una función incluyen REQ, mientras que las marcas devueltas incluyen RET. Por ejemplo, se ISC_REQ_MUTUAL_AUTH una marca de solicitud para la autenticación mutua que se pasa a InitializeSecurityContext (General ). Un servidor que solicita autenticación mutua pasa ASC_REQ_MUTUAL_AUTH a AcceptSecurityContext (General). Si se logra la autenticación mutua, InitializeSecurityContext (General) devuelve ISC_RET_MUTUAL_AUTH y AcceptSecurityContext (General) devuelve ASC_RET_MUTUAL_AUTH. Si el autor de la llamada solicita autenticación mutua, pero el paquete de seguridad indica que no se puede realizar, el autor de la llamada debe decidir si cancelar el contexto o continuar.

En la tabla siguiente se describen las distintas marcas de requisitos de contexto.

Marca Descripción
DELEGADO
El servidor de la aplicación de transporte puede crear nuevos contextos de seguridad suplantando al cliente que otros servidores aceptarán como contextos del cliente. El delegado solo funciona si se establece MUTUAL_AUTH. DELEGATE solo es compatible actualmente con Kerberos. Además, Kerberos solo delegará en un servidor que tenga la marca TRUSTED_FOR_DELEGATION. No use esta marca para la delegación restringida.
MUTUAL_AUTH
Las partes que se comunican deben autenticar sus identidades entre sí. Sin MUTUAL_AUTH, el cliente autentica su identidad en el servidor. Con MUTUAL_AUTH, el servidor también debe autenticar su identidad en el cliente.
Cuando se usa el paquete de seguridad de Schannel , el servidor establece la constante ASC_RET_MUTUAL_AUTH solo en la última llamada a AcceptSecurityContext (Negotiate), una vez completada correctamente la asignación de certificados.
REPLAY_DETECT
El paquete de seguridad detecta paquetes reproducidos y notifica al autor de la llamada si se ha reproducido un paquete. El uso de esta marca implica todas las condiciones especificadas por la marca INTEGRITY.
SEQUENCE_DETECT
El contexto debe permitirse detectar la entrega desordenado de paquetes más adelante a través de las funciones de compatibilidad de mensajes. El uso de esta marca implica todas las condiciones especificadas por la marca INTEGRITY.
CONFIDENCIALIDAD
El contexto puede proteger los datos mientras están en tránsito mediante las funciones EncryptMessage (General) y DecryptMessage (General). La marca CONFIDENCIALIDAD no funciona si el contexto generado es para la cuenta de invitado.
USE_SESSION_KEY
Se debe negociar una nueva clave de sesión .
PROMPT_FOR_CREDS
Si el cliente es un usuario interactivo, el paquete de seguridad debe, si es posible, solicitar al usuario las credenciales adecuadas.
USE_SUPPLIED_CREDS
La información de credenciales específica del paquete está disponible en el búfer de entrada. El paquete de seguridad puede usar estas credenciales para autenticar la conexión.
SAVE_SUPPLIED_CREDS
Las credenciales proporcionadas deben almacenarse en caché con las credenciales complementarias.
ALLOCATE_MEMORY
El paquete de seguridad debe asignar memoria. El autor de la llamada debe llamar finalmente a la función FreeContextBuffer para liberar memoria asignada por el paquete de seguridad.
USE_DCE_STYLE
El autor de la llamada espera una transacción de autenticación de tres patas.
DATAGRAMA
Se debe usar la semántica del datagrama. Para obtener más información, vea Contextos de datagrama.
CONNECTION
Se debe usar la semántica de conexión. Para obtener más información, vea Contextos orientados a conexiones.
Stream
Se debe usar la semántica de secuencia. Para obtener más información, vea Contextos de secuencia.
EXTENDED_ERROR
Los mensajes de respuesta de error para el elemento del mismo nivel deben generarse si se produce un error en el contexto.
INTEGRIDAD
La integridad del búfer se puede comprobar, pero no se habilita la secuenciación ni la detección de respuestas.
NO_INTEGRITY
Se omite el requisito DE INTEGRIDAD .
IDENTIFICAR
Cuando un servidor suplanta un contexto que tiene este conjunto de marcas, esa suplantación produce un acceso extremadamente limitado. La suplantación con el conjunto IDENTIFY se usa para comprobar la identidad del cliente.