Share via


Mappage à l’attribut certificateUserIds dans Microsoft Entra ID

Les objets utilisateurs dans Microsoft Entra ID ont un attribut nommé certificateUserIds.

  • L’attribut certificateUserIds est multivalué et peut contenir jusqu’à 5 valeurs.
  • Chaque valeur ne peut pas dépasser 1 024 caractères.
  • Chaque valeur doit être unique. Une fois qu’une valeur est présente sur un compte d'utilisateur, elle ne peut pas être écrite dans un autre compte d'utilisateur dans le même client Entra ID.
  • La valeur n'a pas besoin d'être au format email ID. L'attribut certificateUserIds peut stocker des noms d'utilisateurs principaux (UPN) non routables tels que bob@woodgrove ou bob@local.

Remarque

Bien que chaque valeur doive être unique dans Entra ID, vous pouvez afficher sur la carte un seul certificat à plusieurs comptes en implémentant plusieurs liaisons de nom d'utilisateur. Pour plus d'informations, consultez Plusieurs liaisons de nom d'utilisateur.

Modèles pris en charge pour les ID des utilisateurs du certificat

Les valeurs stockées dans certificateUserIds doivent être au format décrit dans le tableau suivant. Les préfixes X509 :<mappage> respectent la casse.

Champ de mappage de certificat Exemples de valeurs dans 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
Objet X509:<S>DC=com,DC=contoso,OU=UserAccounts,CN=mfatest
SKU X509:<SKI>123456789abcdef
SHA1PublicKey X509:<SHA1-PUKEY>123456789abcdef
IssuerAndSerialNumber X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>b24134139f069b49997212a86ba0ef48
Pour obtenir la valeur correcte pour le numéro de série, exécutez cette commande et stockez la valeur affichée dans certificateUserIds :
Syntaxe :
Certutil –dump –v [~certificate path~] >> [~dumpFile path~]
Exemple :
certutil -dump -v firstusercert.cer >> firstCertDump.txt

Rôles pour mettre à jour certificateUserIds

Les utilisateurs cloud uniquement doivent avoir au moins le rôle Administrateur d’authentification privilégiée pour mettre à jour certificateUserIds. Les utilisateurs cloud uniquement peuvent utiliser le centre d’administration Microsoft Entra ou Microsoft Graph pour mettre à jour les certificateUserIds.

Les utilisateurs synchronisés doivent avoir au moins un role d’Administrateur identité hybride pour mettre à jour certificateUserIds. Seul Microsoft Entra Connect peut être utilisé pour mettre à jour les certificateUserIds en synchronisant la valeur depuis le site.

Remarque

Les administrateurs Active Directory peuvent apporter des modifications qui ont un impact sur la valeur certificateUserIds dans Microsoft Entra ID pour tout compte synchronisé. Les administrateurs peuvent inclure des comptes disposant de privilèges administratifs délégués sur des comptes d’utilisateur synchronisés ou des droits d’administration sur les serveurs Microsoft Entra Connect.

Mettre à jour certificateUserIds

Procédez comme suit pour mettre à jour les certificateUserIds des utilisateurs :

  1. Connectez-vous au Centre d’administration Microsoft Entra comme au moins un Administrateur d’authentification privilégiée pour les utilisateurs cloud uniquement ou comme au moins un Administrateur d’identité hybride pour les utilisateurs synchronisés.

  2. Rechercher et sélectionner Tous les utilisateurs.

    Capture d’écran du compte d’utilisateur test.

  3. Cliquez sur un utilisateur, puis sur Modifier les propriétés.

  4. À côté des Informations d’autorisation, cliquez sur Afficher.

    Capture d’écran Afficher les informations d’autorisation.

  5. Cliquez sur Modifier les ID des utilisateurs du certificat.

    Capture d’écran des ID des utilisateurs du certificat.

  6. Cliquez sur Ajouter.

    Capture d’écran montrant comment ajouter un certificateUserIds.

  7. Entrez la valeur, puis cliquez sur Enregistrer. Vous pouvez ajouter jusqu’à quatre valeurs, de 120 caractères chacune.

    Capture d’écran d’une valeur à entrer pour certificateUserIds.

Mettre à jour certificateUserIds au moyen de requêtes Microsoft Graph

Les exemples suivants montrent comment utiliser Microsoft Graph pour rechercher des certificateUserIds et les mettre à jour.

Rechercher CertificateUserIDs

Les appelants autorisés peuvent exécuter des requêtes Microsoft Graph pour rechercher tous les utilisateurs avec une valeur certificateUserId donnée. Sur l’objet utilisateur de Microsoft Graph, la collection de certificateUserIds est stockée dans la propriété authorizationInfo.

Pour récupérer les certificateUserIds de tous les objets utilisateur :

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

Pour récupérer les certificateUserIds d’un utilisateur donné par ObjectId de l’utilisateur :

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

Pour récupérer l’objet utilisateur avec une valeur spécifique dans 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

Vous pouvez également utiliser les opérateurs not et startsWith pour correspondre à la règle du filtre. Pour filtrer sur l'objet certificateUserIds, la demande doit inclure la chaîne de requête $count=true et l'en-tête ConsistencyLevel doit être défini sur eventual.

Mettre à jour certificateUserIds

Exécutez une requête PATCH pour mettre à jour le certificateUserIds pour un utilisateur précis.

Corps de la demande

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

Mettre à jour certificateUserIds à l’aide des commandes PowerShell

Pour cette configuration, vous pouvez utiliser Microsoft Graph PowerShell.

  1. Démarrez PowerShell avec les privilèges administrateur.

  2. Installez et importez le Kit de développement logiciel (SDK) Microsoft Graph PowerShell.

        Install-Module Microsoft.Graph -Scope AllUsers
        Import-Module Microsoft.Graph.Authentication
        Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  3. Connectez-vous au locataire et acceptez tout.

       Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
    
  4. Répertoriez l’attribut certificateUserIds d’un utilisateur donné.

      $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. Créez une variable avec des valeurs 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. Mettez à jour l’attribut certificateUserIds.

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

Mettre à jour certificateUserIds à l’aide de l’objet utilisateur

  1. Obtenez l’objet utilisateur.

      $userObjectId = "6b2d3bd3-b078-4f46-ac53-f862f35e10b6"
      $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
    
  2. Mettez à jour l’attribut certificateUserIds de l’objet utilisateur.

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

Mettre à jour certificateUserIds à l'aide de Microsoft Entra Connect

Microsoft Entra connect prend en charge la synchronisation des valeurs avec certificateUserIds à partir d’un environnement Active Directory local. Active Directory local prend en charge l’authentification basée sur des certificats et plusieurs liaisons de nom d'utilisateur. Veillez à utiliser la dernière version de Microsoft Entra Connect.

Pour utiliser ces méthodes de mappage, vous devez remplir l’attribut altSecurityIdentities des objets utilisateur dans le Active Directory local. En outre, après avoir appliqué des modifications d’authentification basées sur des certificats sur les contrôleurs de domaine Windows, comme décrit dans KB5014754, vous avez peut-être implémenté certaines des méthodes de mappage non réutilisables (Type=strong) pour répondre aux exigences d’application de liaison de certificat forte Active Directory locales.

Pour éviter les erreurs de synchronisation, assurez-vous que les valeurs en cours de synchronisation suivent l’un des formats pris en charge pour les certificateUserIds.

Avant de commencer, vérifiez que tous les comptes d’utilisateur synchronisés à partir de Active Directory local ont :

  • 5 valeurs ou moins dans leurs attributs altSecurityIdentities

  • Aucune valeur avec plus de 1 024 caractères

  • Aucune valeur dupliquée

    Examinez attentivement si une valeur dupliquée est destinée à mapper un certificat unique à plusieurs comptes Active Directory local. Pour plus d'informations, consultez Plusieurs liaisons de nom d'utilisateur.

    Remarque

    Dans des scénarios spécifiques, un sous-ensemble d’utilisateurs peut avoir une justification métier valide pour mapper un seul certificat à plusieurs comptes Active Directory local. Révisez ces scénarios et, le cas échéant, implémentez des méthodes de mappage distinctes pour mapper à plusieurs comptes dans le Active Directory local et Entra ID.

Considérations relatives à la synchronisation continue de certificateUserIds

  • Vérifiez que le processus d’approvisionnement pour remplir les valeurs dans Active Directory local implémente une hygiène appropriée. Seules les valeurs associées aux certificats valides actuels sont remplies.
  • Les valeurs sont supprimées lorsque le certificat correspondant a expiré ou a été révoqué.
  • Les valeurs supérieures à 1 024 caractères ne sont pas remplies.
  • Les valeurs en double ne sont pas approvisionnées.
  • Utilisez Microsoft Entra Connect Health pour surveiller la synchronisation.

Suivez ces étapes pour configurer Microsoft Entra Connecter pour synchroniser userPrincipalName avec certificateUserIds :

  1. Sur le serveur Microsoft Entra Connect, recherchez et démarrez l’éditeur de règles de synchronisation.

  2. Cliquez sur Direction, puis sur Sortant.

    Capture d’écran de la règle de synchronisation de trafic sortant.

  3. Recherchez la règle Sortant vers Microsoft Entra ID – Identité de l’utilisateur, cliquez sur Modifier, puis sur Oui pour confirmer.

    Capture d’écran de l’identité de l’utilisateur.

  4. Entrez un nombre élevé dans le champ Précédence, puis cliquez sur Suivant.

    Capture d’écran d’une valeur de précédence.

  5. Cliquez sur Transformations>Ajouter une transformation. Vous devrez peut-être faire défiler la liste des transformations avant d’en créer une.

Synchroniser X509 :<PN>PrincipalNameValue

Pour synchroniser X509 :<PN>PrincipalNameValue, créez une règle de synchronisation sortante et choisissez Expression dans le type de flux. Choisissez l’attribut cible comme certificateUserIds et ajoutez l’expression suivante dans le champ source. Si votre attribut source n’est pas userPrincipalName, vous pouvez modifier l’expression en conséquence.

"X509:<PN>"&[userPrincipalName]

Capture d’écran montrant comment synchroniser x509.

Synchroniser X509 :<RFC822>RFC822Name

Pour synchroniser X509 :<RFC822>RFC822Name, créez une règle de synchronisation sortante et choisissez Expression dans le type de flux. Choisissez l’attribut cible comme certificateUserIds et ajoutez l’expression suivante dans le champ source. Si votre attribut source n’est pas userPrincipalName, vous pouvez modifier l’expression en conséquence.

"X509:<RFC822>"&[userPrincipalName]

Capture d’écran montrant comment synchroniser RFC822Name.

  1. Cliquez sur Attribut cible, sélectionnez certificateUserIds, cliquez sur Source, sélectionnez userPrincipalName, puis cliquez sur Enregistrer.

    Capture d’écran montrant comment enregistrer une règle.

  2. Cliquez sur OK pour confirmer.

Important

Les exemples précédents utilisent l'attribut userPrincipalName comme attribut source dans la règle de transformation. Vous pouvez utiliser n’importe quel attribut disponible avec la valeur appropriée. Par exemple, certaines organisations utilisent l’attribut courrier. Pour les règles de transformation plus complexes, consultez Microsoft Entra Connect Sync : comprendre les expressions d’approvisionnement déclaratif

Pour plus d’informations sur les expressions d’approvisionnement déclaratives, consultez Microsoft Entra Connect : expressions d’approvisionnement déclaratives.

Synchroniser l'attribut altSecurityIdentities d'Active Directory avec le certificateUserIds de Microsoft Entra ID

L’attribut altSecurityIdentities ne fait pas partie de l’ensemble par défaut. Un administrateur doit ajouter un nouvel attribut à l’objet personne dans le Métaverse, puis créer les règles de synchronisation appropriées pour relayer ces données vers certificateUserIds dans Entra ID.

  1. Ouvrez le Concepteur de métaverse et sélectionnez l’objet personne. Pour créer l’attribut alternativeSecurityId, cliquez sur Nouvel attribut. Sélectionnez Chaîne (non indexable) pour créer un attribut d’une taille allant jusqu’à 1 024 caractères, qui est la longueur maximale prise en charge pour certificateUserIds. Si vous sélectionnez Chaîne (indexable), la taille maximale d’une valeur d’attribut est de 448 caractères. Veillez à sélectionner Valeurs multiples.

    Capture d’écran de la création d’un nouvel attribut.

  2. Ouvrez le concepteur Metaverse et sélectionnez alternativeSecurityId pour l’ajouter à l’objet personne.

    Capture d’écran montrant comment ajouter alternativeSecurityId à l’objet personne.

  3. Créez une règle de synchronisation entrante pour transformer l’attribut altSecurityIdentities en attribut alternativeSecurityId.

    Dans la règle concernant le trafic entrant, utilisez les options suivantes.

    Option Valeur
    Nom Nom descriptif de la règle, comme : In from Active Directory - altSecurityIdentities
    Système connecté Votre domaine Active Directory local
    Type d’objet système connecté utilisateur
    Type d’objet métaverse personne
    Priorité Choisir un nombre inférieur à 100 qui n’est pas utilisé actuellement

    Cliquez ensuite sur Transformations et créez un mappage direct à partir de l’attribut cible alternativeSecurityId pour l’attribut source altSecurityIdentities, comme illustré dans la capture d’écran suivante.

    Capture d’écran montrant comment transformer altSecurityIdentities en attribut alternateSecurityId.

  4. Créez une règle de synchronisation sortante pour transformer l’attribut alternativeSecurityId en attribut certificateUserIds dans Entra ID.

    Option Valeur
    Nom Nom descriptif de la règle, comme : Sortant vers Microsoft Entra – certificateUserIds
    Système connecté Votre domaine Microsoft Entra
    Type d’objet système connecté utilisateur
    Type d’objet métaverse personne
    Priorité Choisir un nombre élevé non utilisé actuellement au-dessus de toutes les règles par défaut, par exemple 150

    Cliquez ensuite sur Transformations et créez un mappage direct à partir de l’attribut cible certificateUserIds pour l’attribut source alternativeSecurityId, comme illustré dans la capture d’écran suivante.

    Capture d’écran de la règle de synchronisation sortante pour transformer l’attribut alternateSecurityId en certificateUserIds.

  5. Exécutez la synchronisation pour remplir les données de l’attribut certificateUserIds.

  6. Pour vérifier que la procédure a abouti, consultez les informations d’autorisation d’un utilisateur dans Entra ID.

    Capture d’écran d’une synchronisation réussie.

Pour mapper un sous-ensemble de valeurs à partir de l’attribut altSecurityIdentities, remplacez la transformation à l’étape 4 par une expression. Pour utiliser une expression, passez à l’onglet Transformations et remplacez votre option FlowType par Expression, l’attribut cible par certificateUserIds, puis renseignez l’expression ci-dessous dans le champ Source. L’exemple suivant filtre uniquement les valeurs qui s’alignent sur les champs de mappage de certificat SKI et SHA1PublicKey :

Capture d’écran d’une expression.

Code de l’expression :

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

Les administrateurs peuvent filtrer des valeurs de altSecurityIdentities qui s’alignent sur les modèles pris en charge. Vérifiez que la configuration de l’authentification basée sur les certificats a été mise à jour pour prendre en charge les liaisons de nom d’utilisateur qui sont synchronisées avec certificateUserIds pour activer l’authentification à l’aide de ces valeurs.

Étapes suivantes