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 10 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 Microsoft Entra.
- 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 Microsoft Entra ID, puede asignar un solo certificado a varias cuentas implementando 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>aB1cD2eF3gH4iJ5kL6mN7oP8qR |
SHA1PublicKey | X509:<SHA1-PUKEY>cD2eF3gH4iJ5kL6mN7oP8qR9sT |
IssuerAndSerialNumber | X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>eF3gH4iJ5kL6mN7oP8qR9sT0uV 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:
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.
Busque y seleccione Todos los usuarios.
Haga clic en un usuario y seleccione Editar propiedades.
Junto a Authorization info (Información de autorización), haga clic en Ver.
Haga clic en Edit certificate user IDs (Editar identificadores de usuario de certificado).
Haga clic en Agregar.
Escriba el valor y haga clic en Guardar. Puede agregar hasta cuatro valores, cada uno de 120 caracteres.
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.
Inicie PowerShell con privilegios de administrador.
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
Conéctese al inquilino y acepte todo.
Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
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
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>gH4iJ5kL6mN7oP8qR9sT0uV1wX", "X509:<PN>user@contoso.com" ) } }
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
Obtenga el objeto de usuario.
$userObjectId = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
Actualice el atributo certificateUserIds del objeto de usuario.
$user.AuthorizationInfo.certificateUserIds = @("X509:<SKI>iJ5kL6mN7oP8qR9sT0uV1wX2yZ", "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 asignar a más de una cuenta en Active Directory local y Microsoft 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 de más de 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:
En el servidor de Microsoft Entra Connect, busque e inicie el Editor de reglas de sincronización.
Haga clic en Dirección y en Saliente.
Busque la regla Out to Microsoft Entra ID – User Identity, seleccione Editar y haga clic en Sí para confirmar.
Escriba un número alto en el campo Precedencia y haga clic en Siguiente.
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]
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]
Haga clic en Atributo de destino, seleccione certificateUserIds, haga clic en Origen, seleccione userPrincipalName y haga clic en Guardar.
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 de Active Directory con certificateUserIds de Microsoft Entra
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 Microsoft Entra ID.
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.
Abra el Diseñador de Metaverso y seleccione alternativeSecurityId para agregarlo al objeto de persona.
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.
Cree una regla de sincronización de salida para transformar desde el atributo alternativeSecurityId al atributo certificateUserIds en Microsoft 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.
Ejecute la sincronización para rellenar los datos en el atributo certificateUserIds.
Para comprobar que se ha realizado correctamente, vea la información de autorización de un usuario en Microsoft Entra ID.
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:
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
- Información general sobre la autenticación basada en certificados de Microsoft Entra
- Análisis técnico en profundidad para Microsoft Entra CBA
- Cómo configurar Microsoft Entra CBA
- Microsoft Entra CBA en dispositivos iOS
- Autenticación basada en certificados de Microsoft Entra en dispositivos Android
- Inicio de sesión de tarjeta inteligente de Windows con la CBA de Microsoft Entra
- Cómo migrar de usuarios federados
- P+F