Función SaslAcceptSecurityContext (sspi.h)
La función SaslAcceptSecurityContext ajusta una llamada estándar a la función AcceptSecurityContext (General) de interfaz del proveedor de compatibilidad de seguridad e incluye la creación de cookies de servidor SASL.
Sintaxis
SECURITY_STATUS SEC_ENTRY SaslAcceptSecurityContext(
[in] PCredHandle phCredential,
[in, optional] PCtxtHandle phContext,
[in] PSecBufferDesc pInput,
[in] unsigned long fContextReq,
[in] unsigned long TargetDataRep,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
Parámetros
[in] phCredential
Identificador de las credenciales del servidor. El servidor llama a la función AcquireCredentialsHandle con la marca INBOUND establecida para recuperar este identificador.
[in, optional] phContext
Puntero a una estructura CtxtHandle . En la primera llamada a AcceptSecurityContext (General), este puntero es NULL. En las llamadas posteriores, phContext es el identificador del contexto parcialmente formado que se devolvió en el parámetro phNewContext por la primera llamada.
[in] pInput
Puntero a una estructura SecBufferDesc generada por una llamada de cliente a la función InitializeSecurityContext (General) que contiene el descriptor de búfer de entrada.
SASL requiere un único búfer de tipo SECBUFFER_TOKEN. El búfer está vacío para la primera llamada a la función AcceptSecurityContext (General) y contiene la respuesta de desafío recibida del cliente para la segunda llamada.
[in] fContextReq
Marcas de bits que especifican los atributos requeridos por el servidor para establecer el contexto. Las marcas de bits se pueden combinar mediante operaciones OR bit a bit. En la siguiente tabla se muestran los valores posibles.
[in] TargetDataRep
Indica la representación de datos, como el orden de bytes, en el destino. Este valor puede ser SECURITY_NATIVE_DREP o SECURITY_NETWORK_DREP.
[out] phNewContext
Puntero a una estructura CtxtHandle . En la primera llamada a AcceptSecurityContext (General), este puntero recibe el nuevo identificador de contexto. En las llamadas posteriores, phNewContext puede ser el mismo que el identificador especificado en el parámetro phContext .
[in, out] pOutput
Puntero a una estructura SecBufferDesc que contiene el descriptor del búfer de salida. Este búfer se envía al cliente para la entrada en llamadas adicionales a InitializeSecurityContext (General). Se puede generar un búfer de salida incluso si la función devuelve SEC_E_OK. Cualquier búfer generado se debe devolver a la aplicación cliente.
[out] pfContextAttr
Puntero a una variable que recibe un conjunto de marcas de bits que indican los atributos del contexto establecido. Para obtener una descripción de los distintos atributos, consulte Requisitos de contexto. Las marcas usadas para este parámetro tienen el prefijo ASC_RET, como ASC_RET_DELEGATE.
No compruebe los atributos relacionados con la seguridad hasta que la llamada de función final se devuelva correctamente. Las marcas de atributo no relacionadas con la seguridad, como la marca de ASC_RET_ALLOCATED_MEMORY, se pueden comprobar antes de la devolución final.
[out, optional] ptsExpiry
Puntero a una estructura TimeStamp que recibe la hora de expiración del contexto. Se recomienda que el paquete de seguridad devuelva siempre este valor en la hora local.
Valor devuelto
Si la llamada se completa correctamente, esta función devuelve SEC_E_OK. En la tabla siguiente se muestran algunos valores devueltos de errores posibles.
Código devuelto | Descripción |
---|---|
|
No se permite el procesamiento de authz. |
|
No hay suficiente memoria disponible para completar la solicitud. |
|
No se encuentra ningún búfer de token en el parámetro pOutput o el mensaje no pudo descifrarse. |
Comentarios
Se identifica la llamada final de la función AcceptSecurityContext (General) que devuelve SEC_E_OK. Si se genera un token de devolución, el procesamiento de SASL se suspende para un recorrido de ida y vuelta al cliente para permitir que se procese el token final. Una vez completado el intercambio, SEC_E_CONTINUE_NEEDED se devuelve a la aplicación con una cookie de servidor SASL adicional cifrada con funciones de mensaje SSPI. La cookie inicial del servidor indica si se admite INTEGRIDAD y PRIVACIDAD. El cliente procesa esta cookie de servidor inicial y el cliente devuelve una cookie de cliente para indicar qué servicios solicita el cliente. A continuación, el servidor descifra la cookie de cliente y los servicios finales se determinan para el siguiente tráfico de mensajes.
Requisitos
Cliente mínimo compatible | No se admite ninguno |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | sspi.h (include Security.h) |
Library | Secur32.lib |
Archivo DLL | Secur32.dll |
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de