Unicidad de SPN y UPN
Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 y Windows Server 2012.
Autor: Justin Turner, ingeniero sénior de escalación de soporte técnico con el grupo de Windows
Nota
Este contenido está escrito por un ingeniero de asistencia al cliente de Microsoft y está destinado a los arquitectos de sistemas y administradores con experiencia que están buscando explicaciones técnicas más detalladas de características y soluciones de Windows Server 2012 R2 que los temas que se suelen proporcionar en TechNet. Sin embargo, no ha experimentado los mismos pasos de edición, por lo que parte del lenguaje puede parecer menos perfeccionado de lo que se encuentra normalmente en TechNet.
Información general
Los controladores de dominio que ejecutan Windows Server 2012 R2 bloquean la creación de nombres de entidad de seguridad de servicio (SPN) duplicados y nombres principales de usuario (UPN). Esto incluye si la restauración o reanimación de un objeto eliminado o el cambio de nombre de un objeto daría lugar a un duplicado.
Información previa
Los nombres de entidad de seguridad de servicio duplicados (SPN) suelen producirse y producen errores de autenticación y pueden provocar un uso excesivo de cpu de LSASS. No hay ningún método en caja para bloquear la adición de un SPN o UPN duplicado. *
Los valores UPN duplicados interrumpen la sincronización entre AD local y Office 365.
*Setspn.exe se usa normalmente para crear nuevos SPN y funcionalmente se ha integrado en la versión publicada con Windows Server 2008 que agrega una comprobación de duplicados.
Tabla SEQ Tabla \* ÁRABE 1: UNICIDAD DE UPN y SPN
Característica | Comentario |
---|---|
Unicidad de UPN | Los UPN duplicados interrumpen la sincronización de cuentas de AD locales con servicios basados en Windows Azure AD, como Office 365. |
Unicidad de SPN | Kerberos requiere SPN para la autenticación mutua. Los SPN duplicados producen errores de autenticación. |
Para obtener más información sobre los requisitos de unicidad para UPN y SPN, consulte Restricciones de unicidad.
Síntomas
Los códigos de error 8467 o 8468 o sus equivalentes hexadecimales, simbólicos o de cadena se registran en varios diálogos en pantalla y en el identificador de evento 2974 en el registro de eventos de Servicios de directorio. El intento de crear un UPN o UN SPN duplicados solo se bloquea en las siguientes circunstancias:
- Un controlador de dominio de Windows Server 2012 R2 procesa la escritura.
Tabla SEQ Tabla \* ÁRABE 2: códigos de error de unicidad de UPN y SPN
Decimal | Hex | Simbólico | String |
---|---|---|---|
8467 | 21C7 | ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST | Error en la operación porque el valor de SPN proporcionado para la adición o modificación no es único para todo el bosque. |
8648 | 21C8 | ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST | Se produjo un error en la operación porque el valor de UPN proporcionado para la adición o modificación no es único en todo el bosque. |
Se produce un error en la creación de nuevos usuarios si EL UPN no es único
DSA.msc
El nombre de inicio de sesión de usuario que ha elegido ya está en uso en esta empresa. Elija otro nombre de inicio de sesión y vuelva a intentarlo.
Modificar una cuenta existente:
El nombre de inicio de sesión de usuario especificado ya existe en la empresa. Especifique uno nuevo, ya sea cambiando el prefijo o seleccionando un sufijo diferente de la lista.
Centro de administración de Active Directory (DSAC.exe)
Un intento de crear un nuevo usuario en el Centro de administración de Active Directory con un UPN que ya existe producirá el siguiente error.
Figura SEQ Figura \* Error árabe 1 mostrado en el Centro de administración de AD cuando se produce un error en la creación de un nuevo usuario debido a un UPN duplicado
Origen del evento 2974: ActiveDirectory_DomainService
Figura SEQ Figura \* ÁRABE 2 Id. de evento 2974 con el error 8648
El evento 2974 enumera el valor bloqueado y una lista de uno o varios objetos (hasta 10) que ya contienen ese valor. En la ilustración siguiente, puede ver que el valor dhunt@blue.contoso.com del atributo UPN ya existe en otros cuatro objetos. Puesto que se trata de una nueva característica en Windows Server 2012 R2, la creación accidental de UPN y SPN duplicados en un entorno mixto se seguirá produciendo cuando los controladores de dominio de nivel descendente procesen el intento de escritura.
Figura SEQ Figura \* ÁRABE 3 Evento 2974 que muestra todos los objetos que contienen el UPN duplicado
Sugerencia
Revise el identificador de evento 2974s regularmente para:
- identificar intentos de crear UPN o SPN duplicados
- identificar objetos que ya contienen duplicados
8648 = "Error en la operación porque el valor UPN proporcionado para la adición o modificación no es único para todo el bosque".
Setspn:
Setspn.exe ha integrado la detección de SPN duplicada desde la versión de Windows Server 2008 al usar la opción "-S". Sin embargo, puede omitir la detección de SPN duplicada mediante la opción "-A ". La creación de un SPN duplicado se bloquea cuando el destino es un controlador de dominio de Windows Server 2012 R2 mediante SetSPN con la opción -A. El mensaje de error que se muestra es el mismo que el que se muestra al usar la opción -S: "Se encontró SPN duplicado, se anuló la operación!"
ADSIEDIT:
Operation failed. Error code: 0x21c8
The operation failed because UPN value provided for addition/modification is not unique forest-wide.
000021C8: AtrErr: DSID-03200BBA, #1: 0: 000021C8: DSID-03200BBA, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 90290 (userPrincipalName)
Figura SEQ Figura \* Mensaje de error árabe 4 mostrado en ADSIEdit cuando se bloquea la adición de UPN duplicado
Windows PowerShell
Windows Server 2012 R2:
PS que se ejecuta desde Server 2012 con un controlador de dominio de Windows Server 2012 R2:
DSAC.exe que se ejecuta en Windows Server 2012 que tienen como destino un controlador de dominio de Windows Server 2012 R2:
Figura SEQ Figura \* Error de creación de usuarios de DSAC árabe 5 en el no Windows Server 2012 R2 al seleccionar Windows Server 2012 controlador de dominio de R2
Figura SEQ Figura \* Error de modificación del usuario de DSAC árabe 6 en el no Windows Server 2012 R2 al seleccionar Windows Server 2012 controlador de dominio de R2
Se produce un error en la restauración de un objeto que daría lugar a un error de UPN duplicado:
No se registra ningún evento cuando un objeto no se restaura debido a un UPN o SPN duplicado.
El UPN del objeto debe ser único para que se restaure.
Identificar el UPN que existe en el objeto de la Papelera de reciclaje
Identificar todos los objetos que tienen el mismo valor
Quitar los UPN duplicados
Identificar el UPN en conflicto en el objeto eliminadoUso repadmin.exe
Repadmin /showattr DCName "DN of deleted objects container" /subtree /filter:"(msDS-LastKnownRDN=<NAME>)" /deleted /atts:userprincipalname
repadmin /showattr DCName "CN=Deleted Objects,DC=blue,DC=contoso,DC=com" /subtree /filter:"(msDS-LastKnownRDN=Dianne Hunt2)" /deleted /atts:userprincipalname
C:\>repadmin /showattr winbluedc1 "cn=deleted objects,dc=blue,dc=contoso,dc=com" /subtree /filter:"(msds-lastknownrdn=Dianne Hunt2)" /deleted /atts:userprincipalname
DN: CN=Dianne Hunt2\0ADEL:dd3ab8a4-3005-4f2f-814f-d6fc54a1a1c0,CN=Deleted Object
s,DC=blue,DC=contoso,DC=com
1> userPrincipalName: dhunt@blue.contoso.com
Para identificar todos los objetos con el mismo UPN:Using Repadmin.exe
repadmin /showattr WinBlueDC1 "DC=blue,DC=contoso,DC=com" /subtree /filter:"(userPrincipalName=dhunt@blue.contoso.com)" /deleted /atts:DN
C:\>repadmin /showattr winbluedc1 "dc=blue,dc=contoso,dc=com" /subtree /filter:"(userPrincipalName=dhunt@blue.contoso.com)" /deleted /atts:DN
DN: CN=Administrator,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=xouser1,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=xouser10,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=xouser100,CN=Users,DC=blue,DC=contoso,DC=com
DN: CN=Dianne Hunt,OU=Marketing,DC=blue,DC=contoso,DC=com
DN: CN=Dianne Hunt2\0ADEL:dd3ab8a4-3005-4f2f-814f-d6fc54a1a1c0,CN=Deleted Objects,DC=blue,DC=contoso,DC=com
Sugerencia
El parámetro /deleted no documentado anteriormente en repadmin.exe se usa para incluir objetos eliminados en el conjunto de resultados.
Uso de la búsqueda global
Abra el Centro de administración de Active Directory y vaya a Búsqueda global.
Seleccione el botón de radio Convertir a LDAP .
Type (userPrincipalName=ConflictingUPN)
- Reemplazar ConflictingUPN por el UPN real que está en conflicto
Seleccione Aplicar.
Uso de Windows PowerShell
Get-ADObject -LdapFilter "(userPrincipalName=dhunt@blue.contoso.com)" -IncludeDeletedObjects -SearchBase "DC=blue,DC=Contoso,DC=com" -SearchScope Subtree -Server winbluedc1.blue.contoso.com
Si el objeto debe restaurarse, deberá quitar los UPN duplicados de los demás objetos. Para un solo objeto, es lo suficientemente sencillo usar ADSIEdit para quitar el duplicado. Si hay varios objetos con duplicados, es posible que Windows PowerShell sea la mejor herramienta que usar.
Para anular el atributo UserPrincipalName mediante Windows PowerShell:
Nota
El atributo userPrincipalName es un atributo de valor único, por lo que este procedimiento solo quitará el UPN duplicado.
SPN duplicado
Figura SEQ Figura \* Mensaje de error árabe 8 mostrado en ADSIEdit cuando se bloquea la adición de SPN duplicado
El registro de eventos de Servicios de directorio es un ActiveDirectory_DomainService id. de evento 2974.
Operation failed. Error code: 0x21c7
The operation failed
The attribute value provided is not unique in the forest or partition. Attribute:
servicePrincipalName Value=<SPN>
<Object DN> Winerror: 8467
Figura SEQ Figura \* Error registrado en ÁRABE 9 cuando se bloquea la creación de un SPN duplicado
Flujo de trabajo
Si DC == GC
No se requiere ninguna llamada de la bandeja de salida, la consulta se puede satisfacer localmente.
Mayúsculas y minúsculas de UPN
Consulta del índice UPN de todo el bosque local para el UPN proporcionado (userPrincipalName; un índice global)
Si las entradas devueltas == 0 :> la escritura continúa
Si las entradas devueltas !=0:> se produce un error de escritura
Evento registrado
También devuelve un error extendido:
8648:
ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST
Mayúsculas y minúsculas del SPN
Consulta del índice SPN de todo el bosque local para el SPN proporcionado (servicePrincipalName; un índice global)
Si las entradas devueltas == 0 :> la escritura continúa
Si las entradas devueltas !=0:> se produce un error de escritura
Evento registrado
También devuelve un error extendido:
8647:
ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST
Si DC != GC
Llamada fuera de la bandeja de salida deseable pero no crítica, es decir, se trata de una comprobación de unicidad del mejor esfuerzo
Comprobación de las ganancias en el DIT local solo si no se puede encontrar gc
Evento registrado para indicar tal
Mayúsculas y minúsculas de UPN
Enviar consulta LDAP en gc más cercano ? Consulta del índice UPN de todo el bosque de GC para UPN proporcionado (userPrincipalName; un índice global)
Si las entradas devueltas == 0 :> la escritura continúa
Si las entradas devueltas !=0:> se produce un error de escritura
Evento registrado
También devuelve un error extendido:
8648:
ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST
Mayúsculas y minúsculas del SPN
Enviar consulta LDAP en gc más cercano ? consultar el índice SPN de todo el bosque de GC para el SPN proporcionado (servicePrincipalName; un índice global)
Si las entradas devueltas == 0 :> la escritura continúa
Si las entradas devueltas !=0:> se produce un error de escritura
Evento registrado
También devuelve un error extendido:
8647:
ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST
Cuando los objetos eliminados se vuelven a animar, los valores de SPN o UPN presentes se comprueban si hay unicidad. Si se encuentra un duplicado, se produce un error en la solicitud.
Para determinados cambios de atributo, como el nombre de host DNS, el nombre de la cuenta SAM, etc., cuando se realiza la modificación, los SPN se actualizan según corresponda. En el proceso, se eliminan los SPN obsoletos y se construyen y se agregan nuevos SPN a la base de datos. Las modificaciones de atributo necesarias en las que se desencadena esta ruta de acceso son:
ATT_DNS_HOST_NAME
ATT_MS_DS_ADDITIONAL_DNS_HOST_NAME
ATT_SAM_ACCOUNT_NAME
ATT_MS_DS_ADDITIONAL_SAM_ACCOUNT_NAME
ATT_SERVER_REFERENCE_BL
ATT_USER_ACCOUNT_CONTROL
Si alguno de los nuevos valores de SPN es un duplicado, se producirá un error en la modificación. De la lista anterior, los atributos importantes son ATT_DNS_HOST_NAME (nombre del equipo) y ATT_SAM_ACCOUNT_NAME (nombre de cuenta sam).
Pruebe esto: Exploración de la unicidad de SPN y UPN
Este es el primero de varias actividades de "Probar esto" en el módulo. No hay una guía de laboratorio independiente para este módulo. Las actividades Try This son esencialmente actividades de forma libre que permiten explorar el material de la lección en el entorno de laboratorio. Tiene la opción de seguir el mensaje o desactivar el script y aparecer con su propia actividad.
Nota
- Esta es la primera de varias actividades de "Probar esto".
- No hay una guía de laboratorio independiente para este módulo.
- Las actividades Try This son esencialmente actividades de forma libre que permiten explorar el material de la lección en el entorno de laboratorio.
- Tiene la opción de seguir el mensaje o desactivar el script y aparecer con su propia actividad.
- Aunque no todas las secciones tienen una solicitud Try This ( Probar) , se recomienda que explore el contenido de la lección en el laboratorio cuando corresponda.
Experimente con la unicidad de SPN y UPN. Siga estas indicaciones o complete las suyas propias.
Creación de nuevos usuarios con UPN
Creación de cuentas con SPN
Cree un nuevo usuario con un UPN ya definido previamente o cambie el UPN de una cuenta existente. Haga lo mismo para un SPN en otra cuenta
Rellenar una cuenta de usuario existente con un UPN ya en uso
- Uso de PowerShell, ADSIEDIT o el Centro de administración de Active Directory (DSAC.exe)
Rellenar una cuenta existente con un SPN que ya está en uso
- Uso de Windows PowerShell, ADSIEDIT o SetSPN
Observar los errores
Opcionalmente
Compruebe con el instructor del aula que está bien para habilitar la Papelera de reciclaje de AD en el Centro de administración de Active Directory. Si es así, vaya al paso siguiente.
Rellenar el UPN en una cuenta de usuario
Eliminación de la cuenta
Rellenar una cuenta diferente con el mismo UPN que la cuenta eliminada
Intento de usar la GUI de la papelera de reciclaje para restaurar la cuenta
Imagine acaba de aparecer el error que ve en el paso anterior. (y no tiene un historial de los pasos que acaba de realizar) El objetivo es completar la restauración de la cuenta. Consulte el libro para ver los pasos de ejemplo.