Inicialización del contexto del servidor
Al igual que el cliente, el servidor también adquiere un identificador de credenciales para estar listo para responder a una solicitud de autenticación entrante del cliente. Las credenciales de servidor se usan para autenticar el servidor en el cliente en protocolos de seguridad que admiten la autenticación del servidor o la autenticación mutua. El servidor obtiene un identificador de sus credenciales definidas por la cuenta de servicio utilizada para iniciar el servidor. Para ello, llama a AcquireCredentialsHandle.
El servidor puede adquirir su identificador de credenciales y, a continuación, entrar en un estado de escucha, o puede esperar en un estado de escucha hasta que llegue una solicitud de conexión y, a continuación, adquirir un identificador de credenciales de entrada. Para obtener más información sobre las funciones de credenciales, consulte Administración de credenciales.
Cuando el servidor recibe un mensaje de solicitud de conexión de un cliente, crea un contexto de seguridad local para el cliente mediante AcceptSecurityContext (General) . El servidor usa este contexto de seguridad local para llevar a cabo solicitudes futuras por el mismo cliente. Para obtener más información sobre las funciones de contexto, vea Administración de contexto.
El servidor comprueba el estado de retorno y el descriptor del búfer de salida para asegurarse de que no hay errores hasta ahora y puede rechazar la solicitud de conexión si hay errores. Si hay información en el búfer de salida devuelto por AcceptSecurityContext (General), agrupa ese búfer en un mensaje de respuesta al cliente.
Cualquier búfer de salida de AcceptSecurityContext (General) debe devolverse al cliente. Además, si el estado devuelto requiere que el protocolo continúe (SEC_I_CONTINUE_NEEDED o SEC_I_COMPLETE_AND_CONTINUE), se requiere otro intercambio de mensajes con el cliente.
En el caso de las piernas adicionales, el servidor espera a que el cliente responda con otro mensaje. Esta espera se puede agotar para evitar un ataque por denegación de servicio en el que un cliente nunca responde, lo que hace que un subproceso de servidor y pronto, todos los subprocesos del servidor, dejen de responder.