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.

Screenshot that shows a message that says the logon name you have chosen is already in use.

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.

Screenshot that shows a message that says the logon name you used already exists in the enterprise.

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.

Screenshot that shows a message that says the new user was not created.

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

Screenshot that shows

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.

Screenshot that shows ARABIC 2 Event ID 2974 with error 8648.

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)

Screenshot that shows that the operation failed with error code 0x21c8.

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:

Screenshot that shows a message indicating that the operation failed.

PS que se ejecuta desde Server 2012 con un controlador de dominio de Windows Server 2012 R2:

Screenshot that shows an unknown error.

DSAC.exe que se ejecuta en Windows Server 2012 que tienen como destino un controlador de dominio de Windows Server 2012 R2:

Screenshot that shows a user creation error on non-Windows Server 2012 R2 while targeting Windows Server 2012 R2 DC.

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

Screenshot that shows a user modification error on non-Windows Server 2012 R2 while targeting Windows Server 2012 R2 DC.

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:

Screenshot that shows how to restore an object.

Screenshot that shows that the operation failed because the UPN value provided for addition/modification is not unique forest-wide.

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.

  1. Identificar el UPN que existe en el objeto de la Papelera de reciclaje

  2. Identificar todos los objetos que tienen el mismo valor

  3. 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.

  • 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.

Screenshot that shows the Global Search page.

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

SPN and UPN uniqueness

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:

Screenshot that shows the operation failed with error code 0x21c7.

Nota

El atributo userPrincipalName es un atributo de valor único, por lo que este procedimiento solo quitará el UPN duplicado.

SPN duplicado

Screenshot that shows the error message displayed in ADSIEdit when addition of duplicate SPN is blocked.

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

Screenshot that shows the error logged when creation of duplicate SPN is blocked.

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.

  1. Creación de nuevos usuarios con UPN

  2. Creación de cuentas con SPN

  3. 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

    1. Rellenar una cuenta de usuario existente con un UPN ya en uso

      1. Uso de PowerShell, ADSIEDIT o el Centro de administración de Active Directory (DSAC.exe)
    2. Rellenar una cuenta existente con un SPN que ya está en uso

      1. Uso de Windows PowerShell, ADSIEDIT o SetSPN
  4. Observar los errores

Opcionalmente

  1. 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.

  2. Rellenar el UPN en una cuenta de usuario

  3. Eliminación de la cuenta

  4. Rellenar una cuenta diferente con el mismo UPN que la cuenta eliminada

  5. Intento de usar la GUI de la papelera de reciclaje para restaurar la cuenta

  6. 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.