Kerberos Delegation

La delegación de Kerberos permite "reutilizar las credenciales del usuario final para acceder a los recursos alojados en un servidor diferente"

Esto suele ser útil en aplicaciones o servicios de varios niveles en los que se requiere Kerberos Double Hop.

Por ejemplo, los usuarios se autentican en un servidor web y el servidor web realiza solicitudes a un servidor de base de datos. El servidor web puede solicitar acceso a los recursos (todos o algunos recursos según el tipo de delegación) en el servidor de la base de datos como usuario y no como la cuenta de servicio del servidor web.

Tenga en cuenta que, para el ejemplo anterior, la cuenta de servicio para el servicio web debe ser de confianza para que la delegación pueda realizar solicitudes como usuario.

  1. Un usuario proporciona credenciales al controlador de dominio.

  2. El DC devuelve un TGT.

  3. El usuario solicita un TGS para el servicio web en Web Server.

  4. El DC proporciona un TGS.

  5. El usuario envía el TGT y TGS al servidor web.

  6. La cuenta de servicio del servidor web usa el TGT del usuario para solicitar un TGS para el servidor de la base de datos del DC.

  7. La cuenta de servicio del servidor web se conecta al servidor de la base de datos como usuario.

Hay dos tipos de delegación de Kerberos:

  • Delegación general/básica o sin restricciones: que permite que el servidor de primer salto (servidor web en nuestro ejemplo) solicite acceso a cualquier servicio en cualquier computadora del dominio.

  • Delegación restringida: que permite que el servidor de primer salto (servidor web en nuestro ejemplo) solicite acceso solo a servicios específicos en computadoras específicas. Si el usuario no usa la autenticación Kerberos para autenticarse en el servidor del primer salto, Windows ofrece la transición de protocolo para realizar la transición de la solicitud a Kerberos.

Tenga en cuenta que en ambos tipos de delegaciones, se requiere un mecanismo para hacerse pasar por el usuario entrante y autenticarse en el servidor del segundo salto (servidor de base de datos en nuestro ejemplo) como usuario.

Last updated