Identificadores de usuario de certificado
Los usuarios de id. de Microsoft Entra pueden tener un atributo multivalor denominado certificateUserIds. El atributo permite hasta cinco valores, y cada valor puede tener una longitud de 1024 caracteres. Puede almacenar cualquier valor y no requiere el formato de identificador de correo electrónico. Puede almacenar nombres principales de usuario (UPN) no enrutables, como bob@woodgrove o bob@local.
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
En el caso de los usuarios que solo están en la nube, únicamente los usuarios con los roles de Administrador global y Administrador de autenticación con privilegios pueden escribir en certificateUserIds. Los usuarios solo en la nube pueden usar la experiencia de usuario y MSGraph para escribir en certificateUserIds. Para los usuarios sincronizados, los usuarios de AD con el rol Administrador de identidades híbridas pueden escribir en el atributo. Solo se puede usar Microsoft Entra Connect para actualizar CertificateUserIds mediante la sincronización del valor del entorno local para los usuarios sincronizados.
Nota:
Los administradores de Active Directory, como las cuentas con privilegios administrativos delegados en las cuentas de usuario sincronizadas, así como derechos administrativos en servidores de Microsoft Entra Connect, pueden realizar cambios que afecten al valor de certificateUserIds en Microsoft Entra ID para las cuentas sincronizadas.
Actualizar certificateUserIds
Los administradores de inquilinos pueden seguir estos pasos para actualizar los identificadores de usuario de certificado de una cuenta de usuario:
Inicie sesión en el Centro de administración de Microsoft Entra al menos como Administrador de usuario. 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
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 establecido 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 la 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>eec6b88788d2770a01e01775ce71f1125cd6ad0f", "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 = "6b2d3bd3-b078-4f46-ac53-f862f35e10b6" $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
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 identificadores de usuario de certificado mediante Microsoft Entra Connect
Para actualizar los identificadores de usuario de certificado para usuarios federados, configure Microsoft Entra Connect para sincronizar userPrincipalName con los valores de certificateUserId.
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.
Nota:
Asegúrese de usar la versión más reciente de Microsoft Entra Connect.
Para obtener más información sobre las expresiones de aprovisionamiento declarativo, consulte Microsoft Entra Connect: expresiones de aprovisionamiento declarativo.
Sincronización del atributo alternativeSecurityId desde AD en CertificateUserIds para la autenticación basada en certificados 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 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 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.
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 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