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 Microsoft Entra ID. Les méthodes d’authentification suivantes sont disponibles dans Microsoft Entra ID 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 sécurité case activée. 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 Microsoft Entra ID 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 Microsoft Entra ID avec les rôles et autorisations appropriés

Connectez-vous à un client API tel que Graph Explorer avec un compte qui a au moins le rôle Administrateur d’authentification privilégié ou Administrateurd’authentification Microsoft 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-444c60001490est l’ID global unique de la méthode d’authentification par mot de passe sur Microsoft Entra ID.

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 sur Microsoft Entra ID comme suit :

  • b6332ec1-7057-4abe-9331-3d72feddfe41pour le type de téléphone alternateMobile
  • e37fc753-ff3b-4958-9484-eaa9425c82bcpour le type de téléphone de bureau
  • 3179e48a-750b-4051-897c-87b9720928f7pour 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 laisser Microsoft Entra ID 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 case activée la status de l’opération via une opération GET. L’opération de réinitialisation ne se termine pas immédiatement, car Microsoft Entra ID 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 Microsoft Entra ID générer un nouveau mot de passe temporaire

Dans cette demande, vous ne fournissez pas de nouveau mot de passe et laissez Microsoft Entra ID 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 la status de l’opération de réinitialisation de 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 ?