Asignación al atributo certificateUserIds en el Microsoft Entra ID

Los objetos de usuario en Microsoft Entra ID tienen un atributo denominado certificateUserIds.

  • El atributo certificateUserIds tiene varios valores y puede contener hasta 5 valores.
  • Cada valor no puede tener más de 1024 caracteres.
  • Cada valor debe ser único. Una vez que un valor está presente en una cuenta de usuario, no se puede escribir en ninguna otra cuenta de usuario en el mismo inquilino de Entra ID.
  • No es necesario que el valor esté en formato de identificador de correo electrónico. El atributo certificateUserIds puede almacenar nombres de usuario principal (UPN) no enrutables como bob@woodgrove o bob@local.

Nota:

Aunque cada valor debe ser único en Entra ID, puede asignar un solo certificado a varias cuentas mediante la implementación de varios enlaces de nombre de usuario. Para más información, consulte Enlace de varios nombres de usuario.

Patrones admitidos para identificadores de usuario de certificado

Los valores almacenados en certificateUserIds deben tener el formato descrito en la tabla siguiente. Los prefijos de <asignación> X509: distinguen mayúsculas de minúsculas.

Campo de asignación de certificados Ejemplos de valores en certificateUserIds
PrincipalName X509:<PN>bob@woodgrove.com
PrincipalName X509:<PN>bob@woodgrove
RFC822Name X509:<RFC822>user@woodgrove.com
IssuerAndSubject X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
Asunto X509:<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
SKI X509:<SKI>123456789abcdef
SHA1PublicKey X509:<SHA1-PUKEY>123456789abcdef
IssuerAndSerialNumber X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>b24134139f069b49997212a86ba0ef48
Para obtener el valor correcto para el número de serie, ejecute este comando y almacene el valor que se muestra en certificateUserIds:
Sintaxis:
Certutil –dump –v [~certificate path~] >> [~dumpFile path~]
Ejemplo:
certutil -dump -v firstusercert.cer >> firstCertDump.txt

Roles para actualizar certificateUserIds

Los usuarios solo en la nube deben tener al menos el rol de administrador de autenticación privilegiada para actualizar certificateUserIds. Los usuarios solo en la nube pueden utilizar el centro de administración de Microsoft Entra o Microsoft Graph para actualizar los certificateUserIds.

Los usuarios sincronizados deben tener al menos el rol de administrador de identidades híbridas para actualizar certificateUserIds. Solo se puede usar Microsoft Entra Connect para actualizar certificateUserIds sincronizando el valor desde las instalaciones.

Nota:

Los administradores de Active Directory pueden realizar cambios que afecten al valor certificateUserIds de Microsoft Entra ID para cualquier cuenta sincronizada. Los administradores pueden incluir cuentas con privilegios administrativos delegados sobre cuentas de usuario sincronizadas, o derechos administrativos sobre los servidores Microsoft Entra Connect.

Actualizar certificateUserIds

Siga estos pasos para actualizar certificateUserIds para los usuarios:

  1. Inicie sesión en el Centro de administración de Microsoft Entra como, al menos, Administrador de autenticación privilegiada para los usuarios que solo utilizan la nube o como, al menos, Administrador de identidad híbrida para los usuarios sincronizados.

  2. Busque y seleccione Todos los usuarios.

    Captura de pantalla de la cuenta de usuario de prueba.

  3. Haga clic en un usuario y seleccione Editar propiedades.

  4. Junto a Authorization info (Información de autorización), haga clic en Ver.

    Captura de pantalla de la visualización de la información de autorización.

  5. Haga clic en Edit certificate user IDs (Editar identificadores de usuario de certificado).

    Captura de pantalla de la edición de identificadores de usuario de certificado.

  6. Haga clic en Agregar.

    Captura de pantalla de cómo agregar un certificateUserIds.

  7. Escriba el valor y haga clic en Guardar. Puede agregar hasta cuatro valores, cada uno de 120 caracteres.

    Captura de pantalla de un valor que se va a especificar para certificateUserIds.

Actualizar certificateUserIds mediante consultas de Microsoft Graph

En los ejemplos siguientes se muestra cómo usar Microsoft Graph para buscar certificateUserIds y actualizarlos.

Buscar certificateUserIds

Los autores de llamadas autorizados pueden ejecutar consultas de Microsoft Graph para buscar todos los usuarios con un valor certificateUserId determinado. En el objeto de usuario de Microsoft Graph, la colección de certificateUserIds está almacenada en la propiedad authorizationInfo.

Para recuperar certificateUserIds de todos los objetos de usuario:

GET https://graph.microsoft.com/v1.0/users?$select=authorizationinfo
ConsistencyLevel: eventual

Para recuperar certificateUserIds para un usuario determinado por ObjectId del usuario:

GET https://graph.microsoft.com/v1.0/users/{user-object-id}?$select=authorizationinfo
ConsistencyLevel: eventual

Para recuperar todos los objetos de usuario que tengan un valor determinado en certificateUserIds:

GET https://graph.microsoft.com/v1.0/users?$select=authorizationinfo&$filter=authorizationInfo/certificateUserIds/any(x:x eq 'X509:<PN>user@contoso.com')&$count=true
ConsistencyLevel: eventual

También puede usar los operadores not y startsWith para que coincidan con la condición de filtro. Para filtrar por el objeto certificateUserIds, la solicitud debe incluir la cadena de consulta $count=true y el encabezado ConsistencyLevel debe establecerse en eventual.

Actualizar certificateUserIds

Ejecutar una solicitud PATCH para actualizar certificateUserIds para un usuario determinado.

Cuerpo de la solicitud

PATCH https://graph.microsoft.com/v1.0/users/{user-object-id}
Content-Type: application/json
{
    "authorizationInfo": {
        "certificateUserIds": [
            "X509:<PN>123456789098765@mil"
        ]
    }
}

Actualización de certificateUserIds mediante comandos de PowerShell

Para esta configuración, puede usar Microsoft Graph PowerShell.

  1. Inicie PowerShell con privilegios de administrador.

  2. Instale e importe el SDK de PowerShell para Microsoft Graph.

        Install-Module Microsoft.Graph -Scope AllUsers
        Import-Module Microsoft.Graph.Authentication
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Conéctese al inquilino y acepte todo.

       Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
    
  4. Enumere el atributo certificateUserIds de un usuario determinado.

      $results = Invoke-MGGraphRequest -Method get -Uri 'https://graph.microsoft.com/v1.0/users/<userId>?$select=authorizationinfo' -OutputType PSObject -Headers @{'ConsistencyLevel' = 'eventual' }
      #list certificateUserIds
      $results.authorizationInfo
    
  5. Cree una variable con valores de certificateUserIds.

      #Create a new variable to prepare the change. Ensure that you list any existing values you want to keep as this operation will overwrite the existing value
      $params = @{
            authorizationInfo = @{
                  certificateUserIds = @(
                  "X509:<SKI>eec6b88788d2770a01e01775ce71f1125cd6ad0f", 
                  "X509:<PN>user@contoso.com"
                  )
            }
      }
    
  6. Actualice el atributo certificateUserIds.

       $results = Invoke-MGGraphRequest -Method patch -Uri 'https://graph.microsoft.com/v1.0/users/<UserId>/?$select=authorizationinfo' -OutputType PSObject -Headers @{'ConsistencyLevel' = 'eventual' } -Body $params
    

Actualización de certificateUserIds mediante un objeto de usuario

  1. Obtenga el objeto de usuario.

      $userObjectId = "6b2d3bd3-b078-4f46-ac53-f862f35e10b6"
      $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
    
  2. Actualice el atributo certificateUserIds del objeto de usuario.

       $user.AuthorizationInfo.certificateUserIds = @("X509:<SKI>eec6b88788d2770a01e01775ce71f1125cd6ad0f", "X509:<PN>user1@contoso.com") 
       Update-MgUser -UserId $userObjectId -AuthorizationInfo $user.AuthorizationInfo
    

Actualización de certificateUserIds mediante Microsoft Entra Connect

Microsoft Entra Connect admite la sincronización de valores con certificateUserIds desde un entorno de Active Directory local. Active Directory local admite la autenticación basada en certificados y varios enlaces de nombre de usuario. Asegúrese de usar la versión más reciente de Microsoft Entra Connect.

Para usar estos métodos de asignación, debe rellenar el atributo altSecurityIdentities de los objetos de usuario en el Active Directory local. Además, después de aplicar cambios de autenticación basados en certificados en controladores de dominio de Windows como se describe en KB5014754, es posible que haya implementado algunos de los métodos de asignación no reutilizables (Type=strong) para cumplir los requisitos de cumplimiento de enlaces de certificados seguros de Active Directory local.

Para evitar errores de sincronización, asegúrese de que los valores que se sincronizan siguen uno de los formatos admitidos para certificateUserIds.

Antes de empezar, asegúrese de que todas las cuentas de usuario que se sincronizan desde Active Directory local tengan:

  • 5 o menos valores en sus atributos altSecurityIdentities

  • Ningún valor con más de 1024 caracteres

  • No hay valores duplicados

    Considere detenidamente si un valor duplicado está pensado para asignar un único certificado a varias cuentas de Active Directory local. Para más información, consulte Enlace de varios nombres de usuario.

    Nota:

    En escenarios específicos, un subconjunto de usuarios podría tener una justificación comercial válida para asignar un único certificado a más de una cuenta de Active Directory local. Revise estos escenarios y, cuando sea necesario, implemente métodos de asignación independientes para asignarlos a más de una cuenta en el Active Directory local y Entra ID.

Consideraciones para la sincronización continua de certificateUserIds

  • Asegúrese de que el proceso de aprovisionamiento para rellenar los valores de Active Directory local implementa una higiene adecuada. Solo se rellenan los valores asociados a los certificados válidos actuales.
  • Los valores se quitan cuando el certificado correspondiente ha expirado o se ha revocado.
  • Los valores mayores que 1024 caracteres no se rellenan.
  • Los valores duplicados no se aprovisionan.
  • Utilice Microsoft Entra Connect Health para supervisar la sincronización.

Siga estos pasos para configurar Microsoft Entra Connect para sincronizar userPrincipalName con certificateUserIds:

  1. En el servidor de Microsoft Entra Connect, busque e inicie el Editor de reglas de sincronización.

  2. Haga clic en Dirección y en Saliente.

    Captura de pantalla de la regla de sincronización de salida.

  3. Busque la regla Out to Microsoft Entra ID – User Identity, seleccione Editar y haga clic en para confirmar.

    Captura de pantalla de la identidad de usuario.

  4. Escriba un número alto en el campo Precedencia y haga clic en Siguiente.

    Captura de pantalla de un valor de precedencia.

  5. Haga clic en Transformaciones>Agregar transformación. Es posible que tenga que desplazarse hacia abajo en la lista de transformaciones para poder crear una nueva.

Sincronización de X509:<PN>PrincipalNameValue

Para sincronizar X509:<PN>PrincipalNameValue, cree una regla de sincronización de salida y elija Expresión en el tipo de flujo. Seleccione el atributo de destino como certificateUserIds y, en el campo de origen, agregue la siguiente expresión. Si el atributo de origen no es userPrincipalName, puede cambiar la expresión en consecuencia.

"X509:<PN>"&[userPrincipalName]

Captura de pantalla de cómo sincronizar x509.

Sincronización de X509:<RFC822>RFC822Name

Para sincronizar X509:<RFC822>RFC822Name, cree una regla de sincronización de salida y elija Expresión en el tipo de flujo. Seleccione el atributo de destino como certificateUserIds y, en el campo de origen, agregue la siguiente expresión. Si el atributo de origen no es userPrincipalName, puede cambiar la expresión en consecuencia.

"X509:<RFC822>"&[userPrincipalName]

Captura de pantalla de cómo sincronizar RFC822Name.

  1. Haga clic en Atributo de destino, seleccione certificateUserIds, haga clic en Origen, seleccione userPrincipalName y haga clic en Guardar.

    Captura de pantalla en la que se muestra cómo guardar una regla.

  2. Haga clic en ACEPTAR para continuar.

Importante

En los ejemplos anteriores se usa el atributo userPrincipalName como atributo de origen en la regla de transformación. Puede usar cualquier atributo disponible con el valor adecuado. Por ejemplo, algunas organizaciones usan el atributo mail. Para reglas de transformación más complejas, consulte Sincronización de Microsoft Entra Connect: Comprensión de las expresiones declarativas de aprovisionamiento

Para obtener más información sobre las expresiones de aprovisionamiento declarativo, consulte Microsoft Entra Connect: expresiones de aprovisionamiento declarativo.

Sincronización del atributo altSecurityIdentities del Active Directory con el certificateUserIds de Microsoft Entra ID.

El atributo altSecurityIdentities no forma parte del conjunto de atributos predeterminados. Un administrador debe agregar un nuevo atributo al objeto person en metaverso y, a continuación, crear las reglas de sincronización adecuadas para retransmitir estos datos a certificateUserIds en Entra ID.

  1. Abra Metaverso Designer y seleccione el objeto person. Para crear el atributo alternativeSecurityId, haga clic en Nuevo atributo. Seleccione Cadena (no indexable) para crear un tamaño de atributo de hasta 1024 caracteres, que es la longitud máxima admitida para certificateUserIds. Si selecciona Cadena (indexable), el tamaño máximo de un valor de atributo es de 448 caracteres. Asegúrese de seleccionar Multivalor.

    Captura de pantalla de cómo crear un nuevo atributo.

  2. Abra el Diseñador de Metaverso y seleccione alternativeSecurityId para agregarlo al objeto de persona.

    Captura de pantalla de cómo agregar alternativeSecurityId al objeto person.

  3. Cree una regla de sincronización de entrada para transformar del atributo altSecurityIdentities a alternativeSecurityId.

    En la regla de entrada, use las siguientes opciones.

    Opción Valor
    Nombre Nombre descriptivo de la regla, como: En desde Active Directory - altSecurityIdentities
    Sistema conectado Su dominio de Active Directory local
    Tipo de objeto de sistema conectado usuario
    Propiedades de objeto de metaverso persona
    Prioridad Elija un número inferior a 100 que no esté siendo usado actualmente

    A continuación, haga clic en Transformaciones y cree una asignación directa al atributo de destino alternativeSecurityId desde el atributo fuente altSecurityIdentities, como se muestra en la captura de pantalla siguiente.

    Captura de pantalla de cómo transformar de altSecurityIdentities al atributo alternateSecurityId.

  4. Cree una regla de sincronización de salida para transformación desde el atributo alternativeSecurityId al atributo certificateUserIds en Entra ID.

    Opción Valor
    Nombre Nombre descriptivo de la regla, como: Out to Microsoft Entra ID - certificateUserIds
    Sistema conectado Su dominio de Microsoft Entra
    Tipo de objeto de sistema conectado usuario
    Propiedades de objeto de metaverso persona
    Prioridad Elija un número alto que no se use actualmente sobre todas las reglas predeterminadas, como 150

    A continuación, haga clic en Transformaciones y cree una asignación directa al atributo de destino certificateUserIds desde el atributo fuente alternativeSecurityId, como se muestra en la captura de pantalla siguiente.

    Captura de pantalla de la regla de sincronización de salida para transformar desde el atributo alternateSecurityId a certificateUserIds.

  5. Ejecute la sincronización para rellenar los datos en el atributo certificateUserIds.

  6. Para comprobar que se ha realizado correctamente, vea la información de autorización de un usuario en Entra ID.

    Captura de pantalla de la sincronización correcta.

Para asignar un subconjunto de valores del atributo altSecurityIdentities, reemplace la Transformación en el paso 4 por una Expresión. Para utilizar una Expresión, diríjase a la pestaña Transformaciones y cambie la opción FlowType a Expresión, el atributo de destino a certificateUserIds y posteriormente escriba la siguiente expresión en el campo Origen. En el ejemplo siguiente solo se filtran los valores que se alinean con los campos de asignación de certificados SKI y SHA1PublicKey:

Captura de pantalla de una expresión.

Expresión de código:

IIF(IsPresent([alternativeSecurityId]),
                Where($item,[alternativeSecurityId],BitOr(InStr($item, "X509:<SKI>"),InStr($item, "X509:<SHA1-PUKEY>"))>0),[alternativeSecurityId]
)

Los administradores pueden filtrar valores de altSecurityIdentities que se alinean con los patrones admitidos. Asegúrese de que la configuración de CBA se ha actualizado para admitir los enlaces de nombre de usuario que se sincronizan con certificateUserIds para habilitar la autenticación mediante estos valores.

Pasos siguientes