Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los errores KDC_ERR_S_PRINCIPAL_UNKNOWN y KDC_ERR_PRINCIPAL_NOT_UNIQUE indican que el cliente solicita acceso a un servicio que Kerberos no puede identificar. Este tipo de error indica uno o varios de los siguientes problemas:
- La cuenta de servicio no está configurada correctamente.
- El servicio no usa la cuenta de servicio configurada para él.
- Se configura más de una cuenta para el servicio.
- El cliente no solicitó correctamente el servicio.
Cada servicio tiene un nombre de entidad de seguridad de servicio (SPN) que lo identifica ante clientes y otros servicios. El SPN es un atributo de la cuenta de Active Directory Domain Services (AD DS) que usa el servicio. Un servicio se puede ejecutar en el contexto de una cuenta de servicio personalizada o en el contexto de una cuenta integrada, como la cuenta de equipo del equipo local. El servicio también se puede ejecutar en un contexto de seguridad relacionado con la cuenta de equipo, como el sistema local o el servicio de red.
La manera en que se configuran los SPN difiere en función del tipo de cuenta que usa el servicio:
- Una cuenta de servicio personalizada debe tener un SPN explícito para cada servicio que use la cuenta.
- Es posible que la cuenta de equipo tenga SPN explícitos configurados para los servicios que la usan. Sin embargo, las clases de servicio comunes se asignan automáticamente al SPN host. El SPN host se genera automáticamente para cada cuenta de equipo. En tales casos, es posible que algunos servicios no tengan su propio SPN configurado en la cuenta de equipo.
Importante
- A menos que un servicio use la cuenta de equipo y el SPN host, los SPN deben ser únicos en el bosque de AD DS. En un entorno de varios bosques, el SPN debe ser único en todos los bosques asociados.
- Un SPN solo se puede asociar a una cuenta. Una causa común de problemas de SPN es configurar un servicio para usar una cuenta personalizada aunque el SPN esté asociado a la cuenta personalizada y a la cuenta de equipo.
Recopilar datos de seguimiento e identificar el SPN problemático.
Si aún no ha recopilado datos de seguimiento para el problema, házlo ahora. Para obtener más información, consulte la guía de Solución de problemas de autenticación Kerberos: 3. Recolectar datos de seguimiento y tickets. Compruebe los datos de seguimiento para encontrar el SPN que solicitó el cliente.
Compruebe el SPN que usa la cuenta de servicio.
Estos procedimientos difieren ligeramente en función de si el servicio usa una cuenta personalizada o la cuenta de equipo. En la tabla siguiente se resume la diferencia.
| El servicio usa una cuenta personalizada | El servicio usa la cuenta de computadora |
|---|---|
| El SPN solicitado debe coincidir con el SPN de la cuenta. El SPN debe ser único en el bosque. |
El SPN solicitado podría coincidir con uno de los SPN de la cuenta. Sin embargo, los servicios comunes (como el servicio web) suelen usar el SPN de HOST automático en lugar de un SPN único. Si la cuenta tiene un SPN específico del servicio, ese SPN debe ser único en el bosque. |
Obtenga una lista de SPN asignados a la cuenta de servicio. Para ello, abra una ventana de comandos con privilegios de administrador en un controlador de dominio y, a continuación, ejecute el siguiente comando:
setspn -L <Name>Nota:
- En este comando, <Name> representa el nombre del equipo que ejecuta el servicio o una cuenta personalizada que usa el servicio.
- En un entorno de varios dominios, use el <formato Dominio\Nombre> para especificar el dominio de la cuenta.
Busque las cuentas que usen el SPN solicitado. Esta búsqueda identifica cualquier SPN duplicado o SPN asignado a la cuenta incorrecta.
Nota:
Para realizar este procedimiento, debe tener al menos permisos de administrador de empresa.
Para determinar la cuenta o las cuentas asociadas al SPN, abra una ventana del símbolo del sistema administrativo y ejecute uno de los siguientes comandos.
Bosque único Varios bosques de confianza setspn -Q <SPN>setspn -X <SPN>Nota:
- En este comando, <SPN> representa el SPN que está buscando.
- La búsqueda de duplicados, especialmente en todo el bosque, puede tardar mucho tiempo y mucha memoria.
Para obtener más información sobre el setspn comando y las opciones disponibles, vea setspn.
Volver a configurar el SPN según sea necesario
Los pasos siguientes dependen del resultado de los datos de seguimiento, las setspn consultas y el tipo de cuenta que usa el servicio.
Es posible que vea cualquiera de los siguientes problemas.
| Cuenta personalizada | Cuenta de equipo |
|---|---|
| Una o varias cuentas distintas de la cuenta de servicio tienen el SPN. | Una o más cuentas, distintas de la cuenta de computadora, tienen el SPN. |
| La cuenta personalizada no tiene el SPN. | La cuenta de equipo debe tener el SPN, pero no lo hace. 1 |
| La cuenta personalizada tiene un SPN incorrecto o un SPN que no coincide con el SPN que solicitó el cliente. 2 | La cuenta de equipo tiene un SPN incorrecto o un SPN que no coincide con el SPN que solicitó el cliente. 2 |
1 Para obtener una lista de los servicios que pueden usar el SPN host de la cuenta de equipo, consulte setspn. Si el servicio no es uno de estos servicios comunes, debe configurar un SPN para el servicio en la cuenta de equipo.
2 Para obtener información de solicitud de cliente, consulte los datos de seguimiento de red.
Use los métodos siguientes para corregir la configuración de SPN:
Si la cuenta de servicio está configurada correctamente, pero el cliente solicitó un SPN incorrecto, consulte Corrección de un SPN incoherente.
Si la cuenta de servicio correcta tiene el SPN, pero el SPN no es correcto, quite el SPN incorrecto y agregue el SPN correcto. Para obtener más información, consulte Quitar un SPN de una cuenta y Agregar un SPN a una cuenta de servicio.
Si el SPN se asigna a cualquier cuenta que no sea la cuenta de servicio correcta (cuenta personalizada o cuenta de equipo), quite el SPN de esas cuentas. Consulte Eliminación de un SPN de una cuenta.
Si el servicio usa una cuenta personalizada, pero la cuenta personalizada no tiene un SPN asignado, agregue el SPN. Para obtener más información, consulte Adición de un SPN a una cuenta de servicio.
Si el servicio usa la cuenta de la computadora, pero no es uno de los servicios comunes que se describen en este artículo, añada el SPN a la cuenta de la computadora.
Eliminación de un SPN de una cuenta
Para quitar el SPN de una cuenta, ejecute el siguiente comando en un símbolo del sistema administrativo:
setspn -D <SPN> <AccountName>
Nota:
En este comando, <SPN> representa el SPN que desea quitar. <AccountName> representa la cuenta (o una de las cuentas) de la que desea quitar el SPN.
Agrega un SPN a una cuenta de servicio
Para agregar el SPN a una cuenta, ejecute el siguiente comando en un símbolo del sistema administrativo:
setspn -S \<SPN> \<AccountName>
Nota:
En este comando, <SPN> representa el SPN que desea agregar. <AccountName> representa la cuenta (o una de las cuentas) a las que desea agregar el SPN.
Corrección de un SPN incoherente
Determine qué versión del SPN es correcta: la que solicitó el cliente o la configurada en la cuenta de servicio.
Si el cliente solicita un SPN incorrecto, compruebe la información que usa el cliente para compilar un SPN para una solicitud y asegúrese de que la información de origen sea correcta. DNS es un origen común de esta información. Otros clientes (especialmente clientes no exploradores o personalizados) pueden usar otros orígenes además de DNS.
Si la cuenta de servicio usa el SPN incorrecto, quite el SPN de la cuenta de servicio y agregue el SPN correcto.
Información adicional
Un SPN usa el <formato ServiceClass>/<Host>:<Port>/,<ServiceName> e incluye los siguientes componentes:
- <ServiceClass> (obligatorio) representa la clase de servicio del servicio.
- <Host> (obligatorio) representa el nombre del equipo que ejecuta el servicio.
- <Puerto> (opcional) representa el número de puerto que usa el servicio.
- <ServiceName> (opcional) representa el nombre del servicio.
Para obtener más información sobre cómo dar formato a SPN y cuándo usar parámetros opcionales, vea Formatos de nombre para SPN únicos.