¿Alguien puede explicar los nombres principales de servicio de Windows (SPN) sin simplificar demasiado?

28

He luchado con los nombres principales de servicio varias veces y la explicación de Microsoft simplemente no es suficiente. Estoy configurando una aplicación IIS para que funcione en nuestro dominio y parece que algunos de mis problemas están relacionados con mi necesidad de configurar SPN específicos de http en la cuenta de servicio de Windows que ejecuta el grupo de aplicaciones que aloja mi sitio.

Todo esto me ha hecho darme cuenta de que no entiendo completamente la relación entre los tipos de servicio (MSSQL, http, host, termsrv, wsman, etc.), la autenticación Kerberos, las cuentas de computadora del directorio activo (PCName $), las cuentas de servicios de Windows, SPN y la cuenta de usuario que estoy usando para intentar acceder a un servicio.

¿Alguien puede explicar los nombres principales de servicio de Windows (SPN) sin simplificar demasiado la explicación?

Puntos de bonificación para una analogía creativa que resonaría con un administrador / desarrollador de sistemas con experiencia moderada.

Chris Magnuson
fuente
44
Vea si Bill Bryant, "Diseño de un sistema de autenticación: un diálogo en cuatro escenas" satisface su solicitud de analogía creativa.
yrk

Respuestas:

33

Un nombre principal de servicio es un concepto de Kerberos. Es un identificador para un servicio particular ofrecido por un host particular dentro de un dominio de autenticación. La forma común para los SPN es service class/ fqdn@ REALM(por ejemplo IMAP/[email protected]). También hay nombres de usuario principal que identifican a los usuarios, en forma de user@ REALM(o user1/ user2@ REALM, que identifica un habla-de relación). Se service classpuede considerar libremente como el protocolo para el servicio. La lista de clases de servicio integradas en Windows se enumera en este artículo de Microsoft .

Cada SPN debe estar registrada en el REALM's Key Distribution Center (KDC) y emitió una clave de servicio . La setspn.exeutilidad que está disponible en la \Support\Toolscarpeta en los medios de instalación de Windows o como una descarga del Kit de recursos, manipula las asignaciones de SPN a la computadora u otras cuentas en el AD.

Cuando un usuario accede a un servicio que usa Kerberos para la autenticación (un servicio "Kerberizado") presenta un ticket cifrado obtenido de KDC (en un entorno Windows, un controlador de dominio de Active Directory). El ticket está encriptado con la clave de servicio . Al descifrar el ticket, el servicio demuestra que posee la clave para el SPN dado. Los servicios que se ejecutan en hosts de Windows usan la clave asociada con la cuenta de computadora AD, pero para cumplir con el protocolo Kerberos, los SPN deben agregarse al Active Directory para cada servicio kerberizado que se ejecuta en el host, excepto los SPN incorporados mencionados anteriormente. En Active Directory, los SPN se almacenan en el servicePrincipalNameatributo del objeto de computadora del host.

Para obtener más información, consulte: artículo de Microsoft TechNet sobre SPN , Preguntas frecuentes sobre Kerberos de Ken Hornstein

yrk
fuente
44
+1: me ganaste a escribir esto e hiciste un gran trabajo con el tuyo, así que opté por editar tu respuesta para agregar un par de detalles en lugar de escribir la mía.
Evan Anderson el
@yarek los dos últimos enlaces están rotos a partir del 29 de enero de 2019
Andrew Watson el
10

La respuesta de yarek fue excelente, y la voté, pero también quería darle un poco más de información específica de Windows sobre el tema, o más bien desde la perspectiva de alguien que esté más familiarizado con AD que solo Kerberos en general, solo porque este es un tema que me interesa mucho.

Sentí que este tipo hizo un excelente trabajo al explicarlo, y le recomiendo que lea su artículo, pero aquí hay un párrafo especialmente conciso sobre su pregunta:

"Los nombres principales de servicio definen qué servicios se ejecutan en el contexto de seguridad de las cuentas. Por ejemplo, algunos de los servicios que podría tener una computadora son Servidor de archivos / CIFS (Sistema de archivos de Internet común), si es un controlador de dominio tendrá un LDAP SPN y SPN de replicación de Active Directory y SPN de FRS. Los nombres principales de servicio se pueden definir en las cuentas de usuario cuando un servicio o aplicación se ejecuta en ese contexto de seguridad de los usuarios. Normalmente, estos tipos de cuentas de usuario se conocen como "cuentas de servicio". Es muy importante que comprenda que los nombres principales de servicio DEBEN ser únicos en todo el bosque de Active Directory ".

El artículo completo está aquí: http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx

Ryan Ries
fuente