Protocolo de acceso implícita
El proveedor de compatibilidad de seguridad (SSP) de Microsoft Digest implementa el protocolo de acceso implícita especificado por RFC 2617. La implementación consta de un conjunto de funciones de contexto de seguridad de interfaz del proveedor de soporte técnico de seguridad (SSPI) de Microsoft a las que llaman las aplicaciones cliente/servidor:
- Establezca un contexto de seguridad para el intercambio de mensajes.
- Obtenga los objetos de datos requeridos por el SSP de resumen, como las credenciales y los identificadores de contexto.
- Acceso a los mecanismos de integridad y confidencialidad de los mensajes.
La autenticación implícita de acceso tiene lugar dentro de las transacciones de solicitud/respuesta emparejadas, con solicitudes que se originan en el cliente y las respuestas que se originan en el servidor. Una autenticación de acceso implícita correcta requiere dos pares de solicitud/respuesta.
Cuando se usa el SSP de resumen para la autenticación HTTP, no se mantiene ninguna conexión entre el par de solicitud y respuesta primero y segundo. En otras palabras, el servidor no espera la segunda solicitud después de enviar la primera respuesta.
En la ilustración siguiente se muestran los pasos realizados en la ruta de acceso HTTP por un cliente y servidor para completar una autenticación mediante el SSP de resumen. El mecanismo SASL usa la autenticación mutua, por lo que los datos de autenticación se devuelven en la llamada final del servidor ASC al cliente que comprueba que el cliente se comunica con el servidor correcto.
El proceso comienza con el cliente que solicita un recurso protegido por acceso desde el servidor mediante el envío de la solicitud HTTP 1.
El servidor recibe la solicitud HTTP 1 y determina que el recurso requiere información de autenticación que no se incluyó en la solicitud. El servidor genera un desafío para el cliente de la siguiente manera:
- El servidor obtiene sus credenciales llamando a la función AcquireCredentialsHandle .
- El servidor genera el desafío digest llamando a la función AcceptSecurityContext (General).
- El servidor envía un encabezado WWW-Authenticate como respuesta a la solicitud del cliente (se muestra como respuesta HTTP 1). El encabezado contiene el desafío digest y una directiva opaca que contiene una referencia a un contexto de seguridad parcial establecido para el cliente. El encabezado se envía con un código de estado 401 que indica que la solicitud de cliente generó un error de acceso no autorizado. Para obtener más información sobre el desafío digest, vea Contenido de un desafío de resumen y Generación del desafío de resumen.
- El cliente recibe la respuesta HTTP 1, extrae el desafío de resumen enviado por el servidor y genera una respuesta de desafío de resumen de la siguiente manera:
- Las credenciales del usuario se obtienen llamando a la función AcquireCredentialsHandle o solicitando al usuario de forma interactiva las credenciales.
- La información de desafío y credenciales se pasa a la función InitializeSecurityContext (General), que genera la respuesta de desafío implícita.
- El cliente envía un encabezado authorization que contiene la respuesta de desafío al servidor (que se muestra como solicitud HTTP 2). Para obtener más información sobre la respuesta de desafío implícita, vea Contenido de una respuesta de desafío implícita y Generación de la respuesta de desafío implícita.
- El servidor recibe la solicitud HTTP 2, extrae la respuesta de desafío enviada por el cliente y autentica la información llamando a la función AcceptSecurityContext (General). Para obtener más información sobre el proceso de autenticación, consulte Autenticación inicial con Microsoft Digest.
- El servidor devuelve la respuesta HTTP 2 al cliente como la segunda y la respuesta final requerida por el protocolo de acceso implícita. Si la autenticación se realiza correctamente, esta respuesta contiene el recurso solicitado.
Temas relacionados