Mappage à l’attribut certificateUserIds dans Microsoft Entra ID
Les objets utilisateurs dans Microsoft Entra ID ont un attribut nommé certificateUserIds.
- L’attribut certificateUserIds dispose de plusieurs valeurs et peut en contenir jusqu’à 10.
- 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 locataire Microsoft Entra.
- 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 soit unique dans Microsoft Entra ID, vous pouvez mapper 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>aB1cD2eF3gH4iJ5kL6mN7oP8qR |
SHA1PublicKey | X509:<SHA1-PUKEY>cD2eF3gH4iJ5kL6mN7oP8qR9sT |
IssuerAndSerialNumber | X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>eF3gH4iJ5kL6mN7oP8qR9sT0uV 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 :
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.
Rechercher et sélectionner Tous les utilisateurs.
Cliquez sur un utilisateur, puis sur Modifier les propriétés.
À côté des Informations d’autorisation, cliquez sur Afficher.
Cliquez sur Modifier les ID des utilisateurs du certificat.
Cliquez sur Ajouter.
Entrez la valeur, puis cliquez sur Enregistrer. Vous pouvez ajouter jusqu’à quatre valeurs, de 120 caractères chacune.
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.
Démarrez PowerShell avec les privilèges administrateur.
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
Connectez-vous au locataire et acceptez tout.
Connect-MGGraph -Scopes "Directory.ReadWrite.All", "User.ReadWrite.All" -TenantId <tenantId>
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
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>gH4iJ5kL6mN7oP8qR9sT0uV1wX", "X509:<PN>user@contoso.com" ) } }
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
Obtenez l’objet utilisateur.
$userObjectId = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" $user = Get-MgUser -UserId $userObjectId -Property AuthorizationInfo
Mettez à jour l’attribut certificateUserIds de l’objet utilisateur.
$user.AuthorizationInfo.certificateUserIds = @("X509:<SKI>iJ5kL6mN7oP8qR9sT0uV1wX2yZ", "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. Passez en revue ces scénarios et, le cas échéant, implémentez des méthodes de mappage distinctes pour mapper à plusieurs comptes dans l’Active Directory local et Microsoft 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 :
Sur le serveur Microsoft Entra Connect, recherchez et démarrez l’éditeur de règles de synchronisation.
Cliquez sur Direction, puis sur Sortant.
Recherchez la règle Sortant vers Microsoft Entra ID – Identité de l’utilisateur, cliquez sur Modifier, puis sur Oui pour confirmer.
Entrez un nombre élevé dans le champ Précédence, puis cliquez sur Suivant.
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]
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]
Cliquez sur Attribut cible, sélectionnez certificateUserIds, cliquez sur Source, sélectionnez userPrincipalName, puis cliquez sur Enregistrer.
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 certificateUserIds de Microsoft Entra
L’attribut altSecurityIdentities ne fait pas partie de l’ensemble par défaut. Un administrateur doit ajouter un nouvel attribut à l’objet person dans le Métaverse, puis créer les règles de synchronisation appropriées pour relayer ces données vers certificateUserIds dans Microsoft Entra ID.
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.
Ouvrez le concepteur Metaverse et sélectionnez alternativeSecurityId pour l’ajouter à l’objet personne.
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.
Créez une règle de synchronisation sortante pour passer de l’attribut alternativeSecurityId à l’attribut certificateUserIds dans Microsoft 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.
Exécutez la synchronisation pour remplir les données de l’attribut certificateUserIds.
Pour vérifier la réussite, consultez les informations d’Autorisation d’un utilisateur dans Microsoft Entra ID.
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 :
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
- Vue d’ensemble de l’authentification basée sur certificat Microsoft Entra
- Immersion technique dans l’authentification basée sur les certificats Microsoft Entra
- Guide pratique pour configurer l’authentification basée sur les certificats de Microsoft Entra
- Authentification basée sur les certificats de Microsoft Entra sur les appareils iOS
- Authentification basée sur les certificats de Microsoft Entra sur les appareils Android
- Connexion par carte à puce Windows à l'aide de la CBA de Microsoft Entra
- Comment migrer des utilisateurs fédérés
- FORUM AUX QUESTIONS