Partager via


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-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 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 ?