Gérer les méthodes d’authentification des utilisateurs à l’aide de Microsoft Graph
Les méthodes d’authentification sont les façons dont les utilisateurs s’authentifient dans l’ID Microsoft Entra. Les méthodes d’authentification suivantes sont disponibles dans l’ID Microsoft Entra aujourd’hui et sont gérables via Microsoft Graph :
- Windows Hello Entreprise
- Microsoft Authenticator
- Clé de sécurité FIDO2
- Authentification basée sur des certificats
- Jetons matériels OATH (préversion)
- Jetons logiciels OATH
- Passe d’accès temporaire (TAP)
- SMS
- Voix
- Mot de passe
Les méthodes d'authentification sont utilisées dans l'authentification primaire, secondaire et progressive, ainsi que dans le processus de réinitialisation du mot de passe en libre-service (SSPR).
Que pouvez-vous faire avec les API de méthodes d’authentification ?
Vous pouvez utiliser les API de méthode d’authentification pour l’intégrer à vos applications afin de gérer les méthodes d’authentification d’un utilisateur. Par exemple, vous pouvez :
- Ajouter un numéro de téléphone pour un utilisateur, qui peut ensuite utiliser ce numéro pour l'authentification des SMS et des appels vocaux s'il est autorisé à l'utiliser par la politique
- Mettre à jour ou supprimer le numéro de téléphone attribué à un utilisateur
- Activer ou désactiver le numéro pour la connexion SMS
- Réinitialiser le mot de passe d'un utilisateur
Importante
Nous vous déconseillons d’utiliser les API de méthodes d’authentification pour les scénarios où vous devez itérer sur l’ensemble de votre population d’utilisateurs à des fins d’audit ou de vérification de sécurité. Pour ces types de scénarios, nous vous recommandons d’utiliser les API de création de rapports d’inscription et d’utilisation des méthodes d’authentification (certaines API sont disponibles uniquement sur le point de beta
terminaison).
Utiliser des stratégies pour gérer les méthodes d’authentification dans votre locataire
Vous pouvez choisir les méthodes d’authentification autorisées pour les utilisateurs de votre locataire en configurant des stratégies de méthode d’authentification. Pour chaque stratégie, vous configurez si la méthode d’authentification est activée, ses paramètres et peut définir explicitement les groupes d’utilisateurs autorisés ou non à utiliser la méthode.
Exemple de scénario
Dans cet article, vous allez apprendre à :
- S’authentifier auprès de l’ID Microsoft Entra avec les rôles et autorisations appropriés
- Vérifier les méthodes d’authentification de l’utilisateur
- Ajouter de nouveaux numéros de téléphone pour l'utilisateur
- Supprimer un numéro de téléphone de l'utilisateur
- Réinitialiser le mot de passe de l'utilisateur
Étape 1 : S’authentifier auprès de l’ID Microsoft Entra avec les rôles et autorisations appropriés
Connectez-vous à un client API tel que l’Explorateur Graph avec un compte qui a au moins le rôle Administrateur d’authentification privilégié ou Administrateur d’authentificationMicrosoft Entra. Vous pouvez utiliser un locataire de test avec des exemples de données pour tester les API.
Ensuite, accordez à l’application l’autorisation UserAuthenticationMethod.ReadWrite.All . Vous avez besoin de cette autorisation pour effectuer les opérations de lecture et d’écriture dans ce scénario.
Vous pouvez maintenant commencer à utiliser les API. Dans ce scénario, vous utilisez les API pour gérer les méthodes d’authentification de Cameron White.
Étape 2 : Vérifier les méthodes d'authentification de l'utilisateur
Demande
GET https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/methods
Réponse
À partir de cette réponse, Seule la méthode d’authentification par mot de passe est activée pour Cameron.
28c10230-6103-485e-b985-444c60001490
est l’ID global unique de la méthode d’authentification par mot de passe sur l’ID Microsoft Entra.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('CameronW%40contoso.com')/authentication/methods",
"@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET users('<key>')/authentication/methods?$select=id",
"value": [
{
"@odata.type": "#microsoft.graph.passwordAuthenticationMethod",
"id": "28c10230-6103-485e-b985-444c60001490",
"password": null,
"createdDateTime": "2023-09-18T10:38:07Z"
}
]
}
Étape 3 : Ajout de nouveaux numéros de téléphone pour l'utilisateur
Dans cette étape, vous ajoutez un nouveau numéro de téléphone mobile que Cameron doit utiliser.
Demande
POST https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/phoneMethods
Content-Type: application/json
{
"phoneNumber": "+1 2065555555",
"phoneType": "mobile"
}
Réponse
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('CameronW%40contoso.com')/authentication/phoneMethods/$entity",
"id": "3179e48a-750b-4051-897c-87b9720928f7",
"phoneNumber": "+1 2065555555",
"phoneType": "mobile",
"smsSignInState": "notAllowedByPolicy"
}
Exécutez la même requête, en ajoutant un phoneType de bureau .
Étape 4 : Vérifier les méthodes d’authentification de l’utilisateur
Demande
GET https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/methods
Réponse
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('CameronW%40contoso.com')/authentication/methods",
"@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET users('<key>')/authentication/methods?$select=id",
"value": [
{
"@odata.type": "#microsoft.graph.phoneAuthenticationMethod",
"id": "e37fc753-ff3b-4958-9484-eaa9425c82bc",
"phoneNumber": "+1 4255550199",
"phoneType": "office",
"smsSignInState": "notSupported"
},
{
"@odata.type": "#microsoft.graph.phoneAuthenticationMethod",
"id": "3179e48a-750b-4051-897c-87b9720928f7",
"phoneNumber": "+1 2065555555",
"phoneType": "mobile",
"smsSignInState": "notAllowedByPolicy"
},
{
"@odata.type": "#microsoft.graph.passwordAuthenticationMethod",
"id": "28c10230-6103-485e-b985-444c60001490",
"password": null,
"createdDateTime": "2023-09-18T10:38:07Z"
}
]
}
Confirmez que vous pouvez voir les deux chiffres comme prévu. Les ID des différents types de numéros de téléphone sont globalement les mêmes pour l’ID Microsoft Entra, comme suit :
-
b6332ec1-7057-4abe-9331-3d72feddfe41
pour le type de téléphone alternateMobile -
e37fc753-ff3b-4958-9484-eaa9425c82bc
pour le type de téléphone de bureau -
3179e48a-750b-4051-897c-87b9720928f7
pour le type de téléphone mobile
Étape 5 : Supprimer un numéro de téléphone de l’utilisateur
Cameron travaille maintenant de la maison donc vous devez supprimer le numéro de bureau de son compte.
DELETE https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/phoneMethods/e37fc753-ff3b-4958-9484-eaa9425c82bc
La requête retourne un code de réponse 204 No Content
. Pour vérifier que la méthode de téléphone de bureau a été supprimée du compte de Cameron, réexécutez la demande à l’étape 4. Cameron ne doit maintenant avoir que les méthodes d’authentification par téléphone mobile et mot de passe.
Étape 6 : Réinitialiser le mot de passe de l’utilisateur
Cameron a oublié son mot de passe et vous devez le réinitialiser pour eux. Vous pouvez réinitialiser le mot de passe d’un utilisateur et spécifier un mot de passe temporaire, ou vous pouvez laisser l’ID Microsoft Entra générer un mot de passe temporaire.
Dans les deux méthodes, la réponse inclut un en-tête Location avec une URL que vous pouvez utiliser pour vérifier l’état de l’opération via une opération GET. L’opération de réinitialisation ne se termine pas immédiatement, car l’ID Microsoft Entra doit synchroniser le mot de passe, y compris vers Active Directory dans l’infrastructure locale du locataire (pour les utilisateurs locaux). L’URL est valide pendant 24 heures.
Option 1 : Réinitialiser le mot de passe de l’utilisateur et fournir un nouveau mot de passe temporaire
Demande
POST https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/passwordMethods/28c10230-6103-485e-b985-444c60001490/resetPassword
Content-Type: application/json
{
"newPassword": "29sdjfw#fajsdA_a_3an3223"
}
Réponse
HTTP/1.1 202 Accepted
Location: https://graph.microsoft.com/v1.0/users/a87cc624-b550-4559-b934-3bc0325a4808/authentication/operations/cc8e9b0e-7495-47f2-ad4a-3daa966543c6?aadgdc=DUB02P&aadgsu=ssprprod-a
Option 2 : Réinitialiser le mot de passe de l’utilisateur et laisser l’ID Microsoft Entra générer un nouveau mot de passe temporaire
Dans cette demande, vous ne fournissez pas de nouveau mot de passe et laissez plutôt l’ID Microsoft Entra générer un mot de passe et le retourner dans la réponse.
POST https://graph.microsoft.com/v1.0/users/CameronW@Contoso.com/authentication/passwordMethods/28c10230-6103-485e-b985-444c60001490/resetPassword
Réponse
HTTP/1.1 202 Accepted
Location: https://graph.microsoft.com/v1.0/users/a87cc624-b550-4559-b934-3bc0325a4808/authentication/operations/ba0c9a11-5163-4353-89ba-81501617ede0?aadgdc=AM4P&aadgsu=ssprprod-a
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.passwordResetResponse",
"newPassword": "Hopu0277"
}
Vérifier l’état de l’opération de réinitialisation du mot de passe
Demande
GET https://graph.microsoft.com/v1.0/users/a87cc624-b550-4559-b934-3bc0325a4808/authentication/operations/ba0c9a11-5163-4353-89ba-81501617ede0?aadgdc=AM4P&aadgsu=ssprprod-a
Réponse
HTTP/1.1 202 Accepted
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('a87cc624-b550-4559-b934-3bc0325a4808')/authentication/operations/$entity",
"@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET users('<guid>')/authentication/operations('<guid>')?$select=createdDateTime,lastActionDateTime",
"id": "ba0c9a11-5163-4353-89ba-81501617ede0",
"createdDateTime": "2024-01-18T16:37:10Z",
"lastActionDateTime": "2024-01-18T16:37:10Z",
"status": "succeeded",
"statusDetail": "ResetSuccess",
"resourceLocation": "https://graph.microsoft.com/v1.0/users/a87cc624-b550-4559-b934-3bc0325a4808/authentication/methods/28c10230-6103-485e-b985-444c60001490"
}
Référence API
Vous recherchez la référence API pour les méthodes d'authentification ?