Démarrez avec l'API des méthodes d'authentification Microsoft Graph

Les méthodes d'authentificationsont les moyens par lesquels les utilisateurs s'authentifient dans Azure Active Directory (Azure AD). Les méthodes d'authentification dans Azure AD comprennent le mot de passe et le téléphone (par exemple, les SMS et les appels vocaux), qui sont aujourd'hui gérables dans Microsoft Graph, parmi beaucoup d'autres comme les clés de sécurité FIDO2 et l'application Microsoft Authenticator. 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).

Vous pouvez utiliser les API de méthodes d'authentification pour 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

Les API sont un outil essentiel pour gérer les méthodes d'authentification de vos utilisateurs.

Dans ce tutoriel, vous apprendrez comment le faire :

  • S'authentifier auprès d'Azure AD avec les bons rôles et autorisations
  • 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 d'Azure AD avec les bons rôles et autorisations

En utilisant votre outil préféré pour interagir avec Microsoft Graph,, connectez-vous en utilisant un compte avec l'un de ces rôles :

  • Administrateur global
  • Administrateur d'authentification privilégié
  • Administrateur de l'authentification

Ensuite, modifiez vos autorisations. Nous utiliserons la méthode d'authentification de l'utilisateur (UserAuthenticationMethod.ReadWrite.All) pour ce tutoriel, alors assurez-vous qu'elle est activée dans l'explorateur de graphiques ou dans votre application.

Une fois que le champ d'application est attribué et accepté, vous pouvez commencer à utiliser l'API. Les exemples ici utilisent un utilisateur standard nommé Avery Howard.. Vous devez utiliser un compte test préexistant ou en créer un nouveau en suivant ces instructions. Ces API sont en ligne, donc ne les testez pas sur des utilisateurs réels.

Étape 2 : Vérifier les méthodes d'authentification de l'utilisateur

Passez un appel pour connaître les méthodes d'authentification de l'utilisateur. Prenez l'URL pour voir le profil d'un utilisateur et ajoutez /authentication/methods:

Demande

GET https://graph.microsoft.com/beta/users/avery.howard@wingtiptoysonline.com/authentication/methods

Réponse

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('avery.howard%40wingtiptoysonline.com')/authentication/methods",
    "value": [
        {
            "@odata.type": "#microsoft.graph.passwordAuthenticationMethod",
            "id": "28c10230-6103-485e-b985-444c60001490",
            "password": null,
            "creationDateTime": null
        }
    ]
}

Étape 3 : Ajout de nouveaux numéros de téléphone pour l'utilisateur

Depuis l'étape précédente, un nouvel utilisateur (Avery) n'a qu'un mot de passe enregistré. Pour assigner un nouveau numéro de téléphone à Avery, faites une POST demande en indiquant le type et le numéro de téléphone dans le corps. Pour indiquer au système qu'un numéro de téléphone est ajouté, vous devez également changer la fin de l'URL demethods à phoneMethods.

Demande

POST https://graph.microsoft.com/beta/users/avery.howard@wingtiptoysonline.com/authentication/phoneMethods
Content-Type: application/json
{
    "phoneType": "mobile",
    "phoneNumber": "+1 2065550123"
}

Réponse

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('avery.howard%40wingtiptoysonline.com')/authentication/phoneMethods/$entity",
    "id": "3179e48a-750b-4051-897c-87b9720928f7",
    "phoneNumber": "+1 2065550123",
    "phoneType": "mobile",
    "smsSignInState": "ready"
}

Pour ajouter le numéro du bureau d'Avery, vous POST retrouverez à nouveau sur la même URL mais vous devrez mettre à jour le type et le numéro de téléphone :

Demande

POST https://graph.microsoft.com/beta/users/avery.howard@wingtiptoysonline.com/authentication/phoneMethods
Content-Type: application/json
{
    "phoneType": "office",
    "phoneNumber": "+1 4255550199"
}

Réponse

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('avery.howard%40wingtiptoysonline.com')/authentication/phoneMethods/$entity",
    "id": "e37fc753-ff3b-4958-9484-eaa9425c82bc",
    "phoneNumber": "+1 4255550199",
    "phoneType": "office",
    "smsSignInState": "notSupported"
}

Faites une nouvelle GET recherche sur l'URL des méthodes téléphoniques pour voir tous les numéros de téléphone d'Avery :

Demande

GET https://graph.microsoft.com/beta/users/avery.howard@wingtiptoysonline.com/authentication/phoneMethods

Réponse

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('avery.howard%40wingtiptoysonline.com')/authentication/phoneMethods",
    "value": [
        {
            "id": "e37fc753-ff3b-4958-9484-eaa9425c82bc",
            "phoneNumber": "+1 4255550199",
            "phoneType": "office",
            "smsSignInState": "notSupported"
        },
        {
            "id": "3179e48a-750b-4051-897c-87b9720928f7",
            "phoneNumber": "+1 2065550123",
            "phoneType": "mobile",
            "smsSignInState": "ready"
        }
    ]
}

Confirmez que vous pouvez voir les deux chiffres comme prévu.

Étape 4 : Supprimer un numéro de téléphone de l'utilisateur

Dans ce scénario, Avery travaille maintenant à domicile, vous devez supprimer le numéro de son bureau de son compte. Vous devez appeler DELETE sur l'URL du téléphone du bureau, que vous pouvez créer en ajoutant l'ID du téléphone du bureau à l'URL des méthodes téléphoniques. Regardez la liste des téléphones d’Avers ci-dessus : l'identifiant du téléphone du bureau commence par « e37f ».

Demande

DELETE https://graph.microsoft.com/beta/users/avery.howard@wingtiptoysonline.com/authentication/phoneMethods/e37fc753-ff3b-4958-9484-eaa9425c82bc

Il n'y a pas de données dans la réponse car il n'y a plus de téléphone de bureau comme prévu. Vous pouvez confirmer sa disparition en examinant toutes les méthodes d'Avery, qui sont les mêmesGET qui sont les mêmes que celles utilisées auparavant :

Demande

GET https://graph.microsoft.com/beta/users/avery.howard@wingtiptoysonline.com/authentication/methods

Réponse

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('avery.howard%40wingtiptoysonline.com')/authentication/methods",
    "value": [
        {
            "@odata.type": "#microsoft.graph.phoneAuthenticationMethod",
            "id": "3179e48a-750b-4051-897c-87b9720928f7",
            "phoneNumber": "+1 2065550123",
            "phoneType": "mobile",
            "smsSignInState": "ready"
        },
        {
            "@odata.type": "#microsoft.graph.passwordAuthenticationMethod",
            "id": "28c10230-6103-485e-b985-444c60001490",
            "password": null,
            "creationDateTime": null
        }
    ]
}

Comme prévu, l'utilisateur ne dispose plus que d'un seul téléphone portable et d'un mot de passe.

Étape 5 : Réinitialisation du mot de passe de l'utilisateur

Dans ce scénario, Avery a oublié son mot de passe et vous devez le réinitialiser pour lui. Pour réinitialiser, vous devez POST vous rendre à l'URL de leur mot de passe (voir l'ID commençant par « 28c1 » ci-dessus dans la liste des méthodes d'authentification d'Avery), en spécifiant l'action « resetPassword ». Indiquez le nouveau mot de passe dans l'organisme de demande.

Demande

POST https://graph.microsoft.com/beta/users/avery.howard@wingtiptoysonline.com/authentication/passwordMethods/28c10230-6103-485e-b985-444c60001490/resetPassword
Content-Type: application/json
{
    "newPassword": "29sdjfw#fajsdA_a_3an3223"
}

Réponse

Location: https://graph.microsoft.com/beta/users/ed178e23-7447-4892-baf8-fc46f8af26ce/authentication/operations/74bfa1a6-c0e0-4957-8c37-f91048f4959e?aadgdc=BY01P&aadgsu=ssprprod-a

Comme il s'agit de synchroniser le mot de passe avec Active Directory dans l'infrastructure on-prem du locataire, cela peut prendre quelques minutes, de sorte que vous avez une adresse où vous pouvez vérifier si elle est complète. Cette adresse se trouve dans l'en-tête de localisation de la réponse, et pour voir le statut, faites un GET sur cette URL.

Demande

GET https://graph.microsoft.com/beta/users/ed178e23-7447-4892-baf8-fc46f8af26ce/authentication/operations/74bfa1a6-c0e0-4957-8c37-f91048f4959e?aadgdc=BY01P&aadgsu=ssprprod-a

Réponse

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('ed178e23-7447-4892-baf8-fc46f8af26ce')/authentication/operations/$entity",
    "id": "74bfa1a6-c0e0-4957-8c37-f91048f4959e",
    "createdDateTime": "2020-05-14T00:23:40Z",
    "lastActionDateTime": "2020-05-14T00:23:41Z",
    "status": "succeeded",
    "statusDetail": "ResetSuccess",
    "resourceLocation": "https://graph.microsoft.com/beta/users/ed178e23-7447-4892-baf8-fc46f8af26ce/authentication/methods/28c10230-6103-485e-b985-444c60001490"
}

Et succès ! Vous avez vu le profil d'un utilisateur, ses méthodes d'authentification, l'ajout et la suppression de numéros de téléphone et la réinitialisation de son mot de passe. Vous êtes maintenant prêt à aller gérer les méthodes de vos propres utilisateurs.

Référence API

Vous recherchez la référence API pour les méthodes d'authentification ?

Prochaines étapes

  • Utilisez Azure AD pour vous authentifier sur Microsoft Graph.
  • Intégrez l’expérience de connexion Azure AD dans votre application ou site web.
  • Consultez le journal des modifications pour découvrir les nouveautés des API Azure AD.
  • Explorez des exemples pour en savoir plus sur l’utilisation de Microsoft Graph.