Formatos de nombre para SPN únicos

Un SPN debe ser único en el bosque en el que está registrado. Si no es único, se producirá un error en la autenticación. La sintaxis de SPN tiene cuatro elementos: dos elementos necesarios y dos elementos adicionales que puede usar, si es necesario, para generar un nombre único como se muestra en la tabla siguiente.

<service class>/<host>:<port>/<service name>
Elemento Descripción
"<clase> de servicio" Cadena que identifica la clase general de servicio; por ejemplo, "SqlServer". Hay nombres de clase de servicio conocidos, como "www" para un servicio web o "ldap" para un servicio de directorio. En general, puede ser cualquier cadena que sea única para la clase de servicio. Tenga en cuenta que la sintaxis de SPN usa una barra diagonal (/) para separar elementos, por lo que este carácter no puede aparecer en un nombre de clase de servicio.
"<host>" Nombre del equipo en el que se ejecuta el servicio. Puede ser un nombre DNS completo o un nombre NetBIOS. Tenga en cuenta que no se garantiza que los nombres NetBIOS sean únicos en un bosque, por lo que un SPN que contiene un nombre NetBIOS quizás no sea único.
"<puerto>" Número de puerto opcional para diferenciar entre varias instancias de la misma clase de servicio en un único equipo host. Omita este componente si el servicio usa el puerto predeterminado para su clase de servicio.
"<nombre del> servicio" Nombre opcional que se usa en los SPN de un servicio replicable para identificar los datos o servicios proporcionados por el servicio o el dominio servido por el servicio. Este componente puede tener uno de los siguientes formatos:
  • Nombre distintivo o objectGUID de un objeto en Servicios de dominio de Active Directory, como un punto de conexión de servicio (SCP).
  • Nombre DNS del dominio de un servicio que proporciona un servicio especificado para un dominio en su conjunto.
  • Nombre DNS de un registro SRV o MX.

 

Los componentes presentes en los SPN de un servicio dependen de cómo se identifica y replica el servicio. Hay dos escenarios básicos: servicios basados en host y servicios replicables.

Servicios basados en host

En el caso de un servicio basado en host, el componente "<nombre> del servicio" se omite porque el servicio se identifica de forma única por la clase de servicio y el nombre del equipo host en el que está instalado el servicio.

<service class>/<host>

La clase de servicio por sí sola es suficiente para identificar a los clientes las características que proporciona el servicio. Puede instalar instancias de la clase de servicio en muchos equipos y cada instancia proporciona servicios que se identifican con su equipo host. FTP y Telnet son ejemplos de servicios basados en host. Los SPN de una instancia de servicio basada en host pueden incluir el número de puerto si el servicio usa un puerto no predeterminado o hay varias instancias del servicio en el host.

<service class>/<host>:<port>

Servicios replicables

Para un servicio replicable, puede haber una o varias instancias del servicio (réplicas) y los clientes no diferencian a qué réplica se conectan porque cada una proporciona el mismo servicio. Los SPN de cada réplica tienen los mismos componentes de "<clase> de servicio" y "<nombre> de servicio", donde "<nombre> del servicio" identifica más específicamente las características proporcionadas por el servicio. Solo los componentes "<host>" y opcionales de "<puerto>" variarían de SPN a SPN.

<service class>/<host>:<port>/<service name>

Un ejemplo de un servicio replicable sería una instancia de un servicio de base de datos que proporciona acceso a una base de datos especificada. En este caso, "<clase> de servicio" identifica la aplicación de base de datos y "<nombre> de servicio" identifica la base de datos específica. "<nombre> del servicio" podría ser el nombre distintivo de un punto de conexión de servicio (SCP) que contiene datos de conexión para la base de datos.

MyDBService/host1.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host2.example.com/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host3.example.com/CN=hrdb,OU=mktg,DC=example,DC=com

Si los clientes usarán el nombre NetBIOS para crear el SPN de un servicio, cada réplica también debe registrar un SPN que contenga el nombre NetBIOS.

MyDBService/host1/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host2/CN=hrdb,OU=mktg,DC=example,DC=com
MyDBService/host3/CN=hrdb,OU=mktg,DC=example,DC=com

Otro ejemplo de un servicio replicable es uno que proporciona servicios a un dominio completo. En este caso, el componente "<nombre> del servicio" es el nombre DNS del dominio que se va a atender. Un KDC de Kerberos es un ejemplo de este tipo de servicio replicable.

Tenga en cuenta que si cambia el nombre DNS de un equipo, el sistema actualiza el elemento "<host>" para todos los SPN registrados para ese host en el bosque.