Partager via


Utiliser Microsoft Entra MFA avec un fournisseur externe (préversion)

Cet article décrit comment un fournisseur d’authentification externe se connecte à l’authentification multifacteur Microsoft Entra (MFA).

Important

L’utilisation d’un fournisseur d’authentification externe est actuellement en préversion. Pour plus d’informations sur les préversions, consultez Conditions du contrat de licence universel pour les services en ligne.

Avec cette préversion, vous pouvez utiliser un fournisseur d'authentification externe pour intégrer des clients Microsoft Entra ID comme méthode d’authentification externe. Une méthode d’authentification externe peut satisfaire le deuxième facteur d’une exigence MFA pour l’accès à une ressource ou une application. Les méthodes d’authentification externe nécessitent au moins une licence Microsoft Entra ID P1.

Lorsqu’un utilisateur se connecte, les stratégies de locataire sont évaluées. Les exigences d’authentification sont déterminées en fonction de la ressource à laquelle l’utilisateur tente d’accéder.

Plusieurs stratégies peuvent s’appliquer à la connexion, en fonction de leurs paramètres. Ces paramètres incluent les utilisateurs et les groupes, les applications, la plateforme, le niveau de risque de connexion, etc.

En fonction des exigences d’authentification, l’utilisateur peut avoir besoin de se connecter avec un autre facteur pour répondre aux exigences de l’authentification multifacteur. Le type du deuxième facteur doit compléter le type de premier facteur.

L’administrateur du locataire ajoute des méthodes d’authentification externes à l’ID Microsoft Entra. Si un locataire nécessite une méthode d’authentification externe pour l’authentification multifacteur, la connexion est considérée comme conforme à la condition MFA après que l’ID Microsoft Entra valide les deux :

  • Premier facteur accompli avec l’ID Microsoft Entra.
  • Le deuxième facteur a été terminé avec la méthode d’authentification externe.

Cette validation répond à l’exigence MFA pour deux types de méthodes ou plus :

  • Quelque chose que vous connaissez (connaissance)
  • Quelque chose que vous avez (possession)
  • Quelque chose que vous êtes (inhérence)

Les méthodes d’authentification externes sont implémentées sur OpenID Connect (OIDC). Cette implémentation nécessite au moins trois points de terminaison accessibles publiquement pour implémenter une méthode d’authentification externe :

  • Un point de terminaison de découverte OIDC, comme décrit dans Découverte des métadonnées du fournisseur
  • Un point de terminaison d’authentification OIDC valide
  • Une URL dans laquelle les certificats publics du fournisseur sont publiés

Voici comment la connexion fonctionne avec une méthode d’authentification externe :

  1. Un utilisateur tente de se connecter avec un premier facteur, comme un mot de passe, à une application protégée par Microsoft Entra ID.

  2. Microsoft Entra ID détermine qu’un autre facteur doit être satisfait (par exemple, si une stratégie d’accès conditionnel requiert l’authentification multifacteur).

  3. L’utilisateur choisit la méthode d’authentification externe comme deuxième facteur.

  4. Microsoft Entra ID redirige la session de navigateur de l’utilisateur vers l’URL de la méthode d’authentification externe.

    Cette URL est découverte à partir de l’URL de découverte provisionnée par un administrateur lors de la création de la méthode d’authentification externe.

    L’application fournit un jeton expiré ou presque expiré, qui contient des informations permettant d’identifier l’utilisateur et le tenant.

  5. Le fournisseur d’authentification externe valide le fait que le jeton provient de Microsoft Entra ID et vérifie le contenu du jeton.

  6. Le fournisseur d’authentification externe peut appeler Microsoft Graph pour récupérer des informations supplémentaires sur l’utilisateur.

  7. Le fournisseur d’authentification externe effectue toutes les actions qu’il juge nécessaires, telles que l’authentification de l’utilisateur avec des informations d’identification.

  8. Le fournisseur d’authentification externe redirige l’utilisateur vers Microsoft Entra ID avec un jeton valide, y compris toutes les déclarations requises.

  9. Microsoft Entra ID valide le fait que la signature du jeton provient du fournisseur d’authentification externe configuré, puis vérifie le contenu du jeton.

  10. Microsoft Entra ID valide le jeton par rapport aux exigences.

  11. Si la validation réussit, cela signifie que l’utilisateur a satisfait à l’exigence de l’authentification multifacteur. L’utilisateur peut également avoir à répondre à d’autres exigences de stratégie.

Diagramme montrant le fonctionnement d’une méthode d’authentification externe.

Configuration d’un nouveau fournisseur d’authentification externe avec Microsoft Entra ID

Pour émettre id_token_hint, les méthodes d’authentification externes ont besoin d’une application qui représente l’intégration. Vous pouvez créer l’application de deux façons :

  • Dans chaque locataire qui utilise le fournisseur externe.
  • En tant qu’application mutualisée. Pour activer l’intégration pour son locataire, les administrateurs de rôles privilégiés doivent accorder leur consentement.

L'utilisation d'une application mutualisée peut réduire le risque de mauvaise configuration dans chaque client. Les fournisseurs peuvent également apporter des modifications aux métadonnées (par exemple, les URL de réponse à un emplacement unique) plutôt que demander à chaque locataire d’apporter les modifications.

Pour configurer une application multitenant, l’administrateur du fournisseur doit d’abord :

  1. Créez une instance Microsoft Entra ID (s'ils n'en ont pas déjà une).

  2. Inscrire une application dans leur tenant.

  3. Dans l’application, sous Types de comptes pris en charge, sélectionnez Comptes dans n’importe quel répertoire organisationnel (n'importe quel locataire Microsoft Entra ID - Multilocataire).

  4. Ajoutez les valeurs d'autorisation déléguée openid et profile pour Microsoft Graph.

  5. Ne publier aucune étendue dans cette application.

  6. Ajoutez les URL valides authorization_endpoint du fournisseur d’identité externe à cette application en tant qu’URL de réponse.

    Remarque

    Dans l’inscription de l’application, ajoutez la valeur authorization_endpoint fournie dans le document de découverte du fournisseur en tant qu’URL de redirection. Sinon, vous obtenez l’erreur suivante : « ENTRA IDSTS50161 : Échec de la validation de l’URL d’autorisation du fournisseur de revendications externes ! »

Le processus d’inscription d’application crée une application avec plusieurs propriétés. Vous avez besoin de ces propriétés pour notre scénario.

Propriété Descriptif
ID de l'objet Le fournisseur peut utiliser l’ID d’objet avec Microsoft Graph pour interroger les informations de l’application.

Le fournisseur peut utiliser l’ID d’objet pour récupérer et modifier de manière programmatique les informations de l’application.
ID de l’application Le fournisseur peut utiliser l’ID d’application comme ID client de son application.
URL de la page d’accueil L’URL de la page d’accueil du fournisseur n’est utilisée pour rien, mais vous en avez besoin pour inscrire l’application.
URL de réponse URL de redirection valides pour le fournisseur. Il doit correspondre à l’URL de l’hôte du fournisseur qui a été définie pour le locataire du fournisseur. L’une des URL de réponse inscrites doit correspondre au préfixe de la valeur authorization_endpoint que Microsoft Entra ID récupère pour l’URL d'hôte via la découverte OIDC.

Un autre modèle valide pour la prise en charge de l’intégration consiste à utiliser une application pour chaque locataire. Si vous utilisez une inscription à tenant unique, l’administrateur du tenant doit créer une inscription d’application avec les propriétés du tableau précédent pour une application à tenant unique.

Remarque

Vous avez besoin d’un consentement administrateur pour l’application dans le locataire qui utilise la méthode d’authentification externe. Si vous n’accordez pas de consentement, l’erreur suivante s’affiche lorsqu’un administrateur tente d’utiliser la méthode d’authentification externe : « AADSTS900491 : principal de service <votre ID d’application> introuvable. »

Configurer des revendications facultatives

Un fournisseur peut configurer davantage de déclarations en utilisant des déclarations facultatives pour id_token.

Remarque

Quelle que soit la façon dont l’application est créée, le fournisseur doit configurer des revendications facultatives pour chaque environnement cloud. Si une application multitenant est utilisée pour Azure global et Azure pour le gouvernement des États-Unis, chaque environnement cloud nécessite une application et un ID d’application différents.

Ajout d’une méthode d’authentification externe à l’ID Microsoft Entra

Les informations du fournisseur d’identité externe sont stockées dans la stratégie de méthodes d’authentification de chaque locataire. Les informations du fournisseur sont stockées en tant que méthode d’authentification du type externalAuthenticationMethodConfiguration.

Chaque fournisseur a une entrée dans l’objet de liste de la stratégie. Chaque entrée doit déclarer :

  • Si la méthode est activée.
  • Groupes inclus qui peuvent utiliser la méthode.
  • Groupes exclus qui ne peuvent pas utiliser la méthode.

Pour définir l’exigence MFA pour la connexion des utilisateurs, les utilisateurs disposant du rôle Administrateur d'accès conditionnel peuvent créer une stratégie avec l'autorisation Exiger MFA. Les méthodes d’authentification externes ne sont actuellement pas prises en charge par les forces d’authentification.

En savoir plus sur l’ajout d’une méthode d’authentification externe dans le Centre d’administration Microsoft Entra.

Interaction entre Microsoft Entra ID et le fournisseur

Les sections suivantes expliquent les exigences du fournisseur et incluent des exemples pour savoir comment Microsoft Entra ID interagit avec un fournisseur.

Découverte des métadonnées du fournisseur

Un fournisseur d’identité externe doit fournir un point de terminaison de découverte OIDC. Ce point de terminaison est utilisé pour obtenir plus de données de configuration.

L’URL de découverte doit utiliser le https schéma et doit se terminer par /.well-known/openid-configuration. Vous ne pouvez pas inclure de segments de chemin d’accès supplémentaires, de chaînes de requête ou de fragments après ce segment. L’URL de découverte complète doit être incluse dans l’URL de découverte que vous configurez lorsque vous créez la méthode d’authentification externe.

Le point de terminaison retourne un document JSON de métadonnées de fournisseur hébergé là-bas. Le point de terminaison doit également retourner un en-tête de longueur de contenu valide. Le document de métadonnées doit se conformer à OpenID Connect Discovery 1.0 (incorporant errata set 2) et inclure tous les champs de métadonnées OIDC requis.

Les métadonnées du fournisseur doivent inclure les données répertoriées dans le tableau suivant. Ces valeurs sont requises pour ce scénario d’extensibilité. Le document de métadonnées JSON peut contenir plus d’informations.

Pour le document OIDC qui a les valeurs des métadonnées du fournisseur, consultez Métadonnées du fournisseur.

Valeur des métadonnées Valeur Commentaires
Issuer Doit être une URL HTTPS.

La valeur de l’émetteur doit correspondre à caractère par caractère pour l’émetteur configuré, à la valeur de l’émetteur dans le document de découverte et à la iss revendication dans les jetons émis par le service du fournisseur.

L’émetteur peut inclure un segment de port ou de chemin d’accès, mais ne doit pas contenir de paramètres de requête ou d’identificateurs de fragment.
authorization_endpoint Point de terminaison avec lequel Microsoft Entra ID communique pour l’autorisation. Ce point de terminaison doit être présent en tant qu’URL de réponse pour les applications autorisées.
jwks_uri Emplacement où Microsoft Entra ID peut trouver les clés publiques dont il a besoin pour vérifier les signatures émises par le fournisseur. Il jwks_uridoit s’agir d’un point de terminaison HTTPS et ne doit pas inclure les paramètres de requête ou les identificateurs de fragment.

Le paramètre JWK (JSON Web Key) x5c doit être présent pour fournir des représentations X.509 de clés fournies.
scopes_supported openid D’autres valeurs peuvent également être incluses, mais ne sont pas requises.
response_types_supported id_token D’autres valeurs peuvent également être incluses, mais ne sont pas requises.
subject_types_supported
id_token_signing_alg_values_supported Microsoft prend en charge RS256.
claim_types_supported normal Cette propriété est facultative, mais si elle est présente, elle doit inclure la normal valeur. D’autres valeurs peuvent également être incluses.
https://customcaserver.azurewebsites.net/v2.0/.well-known/openid-configuration
{
  "authorization_endpoint": "https://customcaserver.azurewebsites.net/api/Authorize",
  "claims_supported": [
    "email"
  ],
  "grant_types_supported": [
    "implicit"
  ],
  "id_token_signing_alg_values_supported": [
    "RS256"
  ],
  "issuer": "https://customcaserver.azurewebsites.net/v2.0",
  "jwks_uri": "https://customcaserver.azurewebsites.net/.well-known/jwks",
  "response_modes_supported": [
    "form_post"
  ],
  "response_types_supported": [
    "id_token"
  ],
  "scopes_supported": [
    "openid"
  ],
  "SigningKeys": [],
  "subject_types_supported": [
    "public"
  ]
}

https://customcaserver.azurewebsites.net/.well-known/jwks
{
  "keys": [
    {
      "kty": "RSA",
      "use": "sig",
      "kid": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u",
      "x5t": "A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u",
      "n": "jq277LRoE6WKM0awT3b...vt8J6MZvmgboVB9S5CMQ",
      "e": "AQAB",
      "x5c": [
        "cZa3jz...Wo0rzA="
      ]
    }
  ]
}

Remarque

Le paramètre JWK x5c doit être présent pour fournir des représentations X.509 des clés fournies.

Exemples d’URL de découverte et d’émetteur

Les exemples suivants illustrent des combinaisons d’URL de découverte et d’émetteur valides et non valides pour cette intégration.

URL de découverte et paires d’émetteurs valides
  • URL de découverte : https://example.com/.well-known/openid-configuration
    Émetteur : https://example.com
  • URL de découverte : https://example.com:8443/.well-known/openid-configuration
    Émetteur : https://example.com:8443
  • URL de découverte : https://example.com/tenant1/.well-known/openid-configuration
    Émetteur : https://example.com/tenant1
Exemples d’URL de découverte et d’émetteur non valides
  • URL de découverte : https://example.com/.well-known/openid-configuration
    Émetteur : https://example.com:443/ (Port HTTPS par défaut explicitement ajouté dans l’émetteur.)
  • URL de découverte : https://example.com:443/.well-known/openid-configuration
    Émetteur : https://example.com/ (Incompatibilité de port.)
  • URL de découverte : https://example.com/.well-known/openid-configuration?client_id=0oasxuxkghOniBjlQ697
    Émetteur : https://example.com (Vous ne pouvez pas inclure de chaîne de requête dans une URL de découverte.)

Mise en cache des métadonnées du fournisseur

Pour améliorer les performances, Microsoft Entra ID met en cache les métadonnées retournées par le fournisseur, y compris les clés. La mise en cache des métadonnées du fournisseur empêche un appel de découverte chaque fois que l’ID Microsoft Entra communique avec un fournisseur d’identité externe.

Ce cache est actualisé toutes les 24 heures. Nous recommandons aux fournisseurs de suivre ces étapes pour renouveler leurs clés :

  1. Publiez le certificat existant et le nouveau certificat dans jwks_uri.
  2. Continuez à vous connecter avec le certificat existant jusqu’à ce que le cache d’ID Microsoft Entra soit actualisé, expiré ou mis à jour (tous les 2 jours).
  3. Basculez vers la connexion avec New Cert.

Nous ne publions pas de planifications pour les effets de substitution de clés. Le service dépendant doit être prêt à gérer les effets de substitution immédiats et périodiques. Nous vous suggérons d’utiliser une bibliothèque dédiée créée à cet effet, comme azure-activedirectory-identitymodel-extensions-for-dotnet. Pour plus d’informations, consultez Effet de substitution de clé de signature dans Microsoft Entra ID.

Découverte des métadonnées Microsoft Entra ID

Les fournisseurs doivent également récupérer les clés publiques de Microsoft Entra ID pour valider les jetons émis par Microsoft Entra ID.

Points de terminaison de découverte des métadonnées Microsoft Entra ID :

  • Azure global : https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
  • Azure pour le gouvernement des États-Unis : https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration
  • Microsoft Azure géré par 21Vianet : https://login.partner.microsoftonline.cn/common/v2.0/.well-known/openid-configuration

Vous pouvez utiliser l’identificateur de clé publique à partir du jeton (le « kid » de la signature web JSON (JWS)) pour déterminer quelles clés récupérées à partir de la jwks_uri propriété doivent être utilisées pour valider la signature du jeton d’ID Microsoft Entra.

Validation des jetons émis par Microsoft Entra ID

Pour plus d’informations sur la validation des jetons émis par l’ID Microsoft Entra, consultez Valider un jeton d’ID. Il n’existe aucune étape spéciale pour les consommateurs de nos métadonnées de découverte.

Vous trouverez tous les détails sur la validation des jetons dans la bibliothèque de validation de jetons de Microsoft. Vous pouvez également vérifier ces détails en parcourant le code source. Pour un exemple, consultez Exemples Azure.

Une fois la validation réussie, vous pouvez utiliser la charge utile des revendications pour obtenir des détails sur l’utilisateur et son locataire.

Remarque

Il est important de valider la id_token_hint valeur pour vous assurer qu’elle provient d’un locataire Microsoft et représente votre intégration. La id_token_hint valeur doit être entièrement validée, en particulier la signature, l’émetteur, l’audience et d’autres valeurs de revendication.

Appel de Microsoft Entra ID au fournisseur d’identité externe

Microsoft Entra ID utilise le flux implicite OIDC pour communiquer avec le fournisseur d’identité externe. Lorsque vous utilisez ce flux, la communication avec le fournisseur se produit à l’aide uniquement du point de terminaison d’autorisation du fournisseur.

Pour informer le fournisseur de l’utilisateur pour lequel l’ID Microsoft Entra effectue la requête, l’ID Microsoft Entra transmet un jeton via le id_token_hint paramètre.

Cet appel est effectué par le biais d’une POST requête, car une grande liste de paramètres est transmise au fournisseur. Une liste volumineuse empêche l’utilisation de navigateurs qui limitent la longueur d’une GET requête.

Les paramètres de demande d’authentification sont répertoriés dans le tableau suivant.

Remarque

Le fournisseur doit ignorer d’autres paramètres dans la requête, sauf s’ils sont répertoriés dans le tableau suivant.

Paramètre de requête d’authentification Valeur Descriptif
scope openid
response_type Id_token Valeur utilisée pour le flux implicite.
response_mode form_post Nous utilisons le formulaire POST pour éviter les problèmes liés aux URL volumineuses. Nous nous attendons à ce que tous les paramètres soient envoyés dans le corps de la requête.
client_id ID client donné à Microsoft Entra ID par le fournisseur d’identité externe, tel que ABCD. Pour plus d’informations, consultez Description de la méthode d’authentification externe.
redirect_uri URI (Uniform Resource Identifier) de redirection vers lequel le fournisseur d’identité externe envoie la réponse (id_token_hint). Consultez un exemple après ce tableau.
nonce Chaîne aléatoire générée par Microsoft Entra ID. Il peut s’agir de l’ID de session. Si elle est fournie, elle doit être retournée dans la réponse à Microsoft Entra ID.
state Si passé en paramètre, le fournisseur doit renvoyer state dans sa réponse. L’ID Microsoft Entra utilise state pour conserver le contexte de l’appel.
id_token_hint Jeton que Microsoft Entra ID émet pour l’utilisateur et transmet au profit du fournisseur.
claims Objet blob JSON qui contient les revendications requises. Pour plus d’informations sur le format de ce paramètre, consultez paramètre de requête de revendications de la documentation OIDC et l’exemple après ce tableau.
client-request-id Valeur GUID Un fournisseur peut consigner cette valeur pour aider à résoudre les problèmes.

Exemple d’URI de redirection

Les URI de redirection doivent être inscrits auprès du fournisseur hors bande. Les URI de redirection que vous pouvez envoyer sont les suivants :

  • Azure global : https://login.microsoftonline.com/common/federation/externalauthprovider
  • Azure pour le gouvernement des États-Unis : https://login.microsoftonline.us/common/federation/externalauthprovider
  • Microsoft Azure géré par 21Vianet : https://login.partner.microsoftonline.cn/common/federation/externalauthprovider

Exemple de méthode d’authentification externe qui satisfait à l’authentification multifacteur

Voici un exemple où une méthode d’authentification externe répond aux exigences MFA. Cet exemple aide un fournisseur à connaître les revendications attendues par Microsoft Entra ID.

Microsoft Entra ID utilise la combinaison des valeurs acr et amr pour valider ce qui suit :

  • La méthode d’authentification utilisée pour le deuxième facteur satisfait aux exigences de l’authentification multifacteur.
  • La méthode d’authentification est un type différent de la méthode utilisée pour terminer le premier facteur de connexion à l’ID Microsoft Entra.
{
  "id_token": {
    "acr": {
      "essential": true,
      "values":["possessionorinherence"]
    },
    "amr": {
      "essential": true,
      "values": ["face", "fido", "fpt", "hwk", "iris", "otp", "pop", "retina", "sc", "sms", "swk", "tel", "vbm"]
    }
  }
}

Revendications de id_token_hint par défaut

Cette section décrit le contenu requis du jeton passé comme id_token_hint dans la demande adressée au fournisseur. Le jeton peut contenir plus de revendications que le tableau suivant.

Revendication Valeur Descriptif
iss Identifie le service d’émission de jeton de sécurité (Security Token Service/STS) qui construit et retourne le jeton, ainsi que le tenant Microsoft Entra ID dans lequel l’utilisateur s’est authentifié.

Votre application doit utiliser la partie GUID de la revendication pour restreindre l’ensemble des clients qui peuvent se connecter à l’application, le cas échéant.

L’émetteur doit correspondre à l’URL de l’émetteur à partir des métadonnées JSON de découverte OIDC pour le locataire dans lequel l’utilisateur s’est connecté.
aud L’audience doit être définie sur l’ID client du fournisseur d’identité externe pour l’ID Microsoft Entra.
exp L’heure d’expiration est définie pour expirer peu de temps après l’heure d’émission, suffisamment pour éviter les problèmes d’asymétrie du temps. Ce jeton n’étant pas destiné à l’authentification, il n’y a aucune raison pour que sa validité survive longtemps après la requête.
iat Définir l’heure d’émission comme d’habitude.
tid L’ID de tenant est destiné à la publicité du tenant auprès du fournisseur. Il représente le tenant Microsoft Entra ID duquel l’utilisateur provient.
oid Identificateur immuable d’un objet dans la plateforme d’identités Microsoft. Dans ce cas, il s’agit d’un compte d’utilisateur. Il peut également être utilisé pour effectuer des vérifications d’autorisation en toute sécurité et en tant que clé dans les tables de base de données.

Cet ID n’identifie que l’utilisateur sur plusieurs applications. Deux applications différentes qui se connectent au même utilisateur reçoivent la même valeur dans la oid déclaration. Ainsi, la oid revendication peut être utilisée dans des requêtes pour les services en ligne Microsoft, tels que Microsoft Graph.
preferred_username Fournit une valeur lisible par l’homme qui identifie l’objet du jeton. Il n’est pas certain que cette valeur soit unique au sein d’un tenant. Elle ne doit être utilisée qu’à des fins d’affichage.
sub Identificateur d’objet de l’utilisateur au niveau de l’émetteur. Principal sur lequel portent les assertions d’informations du jeton, comme l’utilisateur d’une application.

Cette valeur est immuable et ne peut pas être réattribuée ou réutilisée. Il peut être utilisé pour effectuer des vérifications d’autorisation en toute sécurité, par exemple lorsque le jeton est utilisé pour accéder à une ressource. Il peut être utilisé comme clé dans les tables de base de données.

Le sujet étant toujours présent dans les jetons émis par Microsoft Entra ID, nous vous recommandons d’utiliser cette valeur dans un système d’autorisation à usage général. Toutefois, l'objet est un identificateur pair, et il est unique à un identifiant d'application particulier.

Par conséquent, si un utilisateur unique se connecte à deux applications différentes à l’aide de deux ID client différents, ces applications reçoivent deux valeurs différentes pour la revendication d’objet.

Vous pouvez ou non souhaiter ce résultat, en fonction de votre architecture et de vos exigences de confidentialité.

Consultez également la oid claim (qui reste la même dans les applications à l'intérieur d’une instance).

Pour empêcher l’utilisation du jeton pour n’importe quoi d’autre qu’un indicateur, il est émis dans l’état expiré. Le jeton est signé et peut être vérifié à l’aide des métadonnées de découverte d’ID Microsoft Entra publiées.

Revendications facultatives de Microsoft Entra ID

Si un fournisseur a besoin de revendications facultatives à partir de l’ID Microsoft Entra, vous pouvez configurer les revendications facultatives suivantes pour id_token: given_name, , family_name, preferred_username. upn Pour plus d’informations, consultez Revendications facultatives.

Nous vous recommandons d’associer des comptes côté fournisseur au compte dans Azure à l’aide des revendications oid et tid. Ces deux revendications sont garanties pour être uniques pour le compte dans le tenant.

Exemple d'id_token_hint

Voici un exemple pour un membre de l'annuaire id_token_hint :

{
  "typ": "JWT",
  "alg": "RS256",
  "kid": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1w"
}.{
  "ver": "2.0",
  "iss": "https://login.microsoftonline.com/aaaabbbb-0000-cccc-1111-dddd2222eeee/v2.0",
  "sub": "mBfcvuhSHkDWVgV72x2ruIYdSsPSvcj2R0qfc6mGEAA",
  "aud": "00001111-aaaa-2222-bbbb-3333cccc4444",
  "exp": 1536093790,
  "iat": 1536093791,
  "nbf": 1536093791,
  "name": "Test User 2",
  "preferred_username": "testuser2@contoso.com"
  "oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "tid": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
  }.

Voici un exemple pour un utilisateur invité id_token_hint dans le client :

{
  "typ": "JWT",
  "alg": "RS256",
  "kid": "C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1w"
}.{
  "ver": "2.0",
  "iss": "https://login.microsoftonline.com/9122040d-6c67-4c5b-b112-36a304b66dad/v2.0",
  "sub": "mBfcvuhSHkDWVgV72x2ruIYdSsPSvcj2R0qfc6mGEAA",
  "aud": "00001111-aaaa-2222-bbbb-3333cccc4444",
  "exp": 1536093790,
  "iat": 1536093791,
  "nbf": 1536093791,
  "name": "External Test User (Hotmail)",
  "preferred_username": "externaltestuser@hotmail.com",
  "oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "tid": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
  }.


Actions suggérées pour les fournisseurs d’identité externes

Nous recommandons que les fournisseurs d’identité externes accomplissent les tâches suivantes. La liste n’est pas exhaustive et les fournisseurs doivent effectuer d’autres étapes de validation comme ils le pensent approprié.

  • D'après la demande :

    • Vérifiez que le redirect_uri est publié comme décrit dans la requête à l’ID Microsoft Entra au fournisseur d’identité externe.
    • Vérifiez que l’URL de découverte configurée utilise HTTPS et se termine par /.well-known/openid-configuration. Vérifiez également qu’il n’inclut pas les paramètres de requête ou les identificateurs de fragment. Assurez-vous que la valeur de l’émetteur correspond exactement au document de découverte.
    • Assurez-vous qu’une valeur est attribuée à l’ID Microsoft Entra, par exemple ABCD.
    • Le fournisseur doit d’abord valider l’ID id_token_hint Microsoft Entra qui lui est présenté.
  • D'après les revendications dans les id_token_hint:

    • (Facultatif) Appelez Microsoft Graph pour récupérer d’autres détails sur cet utilisateur. Les revendications oid et tid dans id_token_hint sont utiles à cet égard. Pour plus d’informations sur les revendications fournies dans id_token_hint, consultez Revendications par défautid_token_hint.
  • Effectuez toute autre activité d’authentification pour le produit du fournisseur.

  • En fonction du résultat des actions de l’utilisateur et d’autres facteurs, le fournisseur construit et renvoie une réponse à l’ID Microsoft Entra, comme expliqué dans la section suivante.

Traitement par Microsoft Entra ID de la réponse du fournisseur

Le fournisseur doit utiliser POST pour renvoyer une réponse au redirect_uri. Les paramètres suivants doivent être fournis dans une réponse réussie :

Paramètre Valeur Descriptif
id_token Le jeton que le fournisseur d’identité externe émet.
state Le même état qui a été transmis dans la requête, le cas échéant. Sinon, cette valeur ne doit pas être présente.

En cas de réussite, le fournisseur émet alors une id_token valeur pour l’utilisateur. Microsoft Entra ID utilise les métadonnées OIDC publiées pour vérifier que le jeton contient les revendications attendues et effectue toute autre validation de jeton requise par OIDC.

Revendication Valeur Descriptif
iss Émetteur : doit correspondre à l’émetteur à partir des métadonnées de découverte du fournisseur.
aud Audience : ID de client Microsoft Entra ID. Consultez client_idl’appel de Microsoft Entra ID au fournisseur d’identité externe.
exp Délai d’expiration : défini comme d’habitude.
iat Délai d’émission : défini comme d’habitude.
sub Objet : doit correspondre au sous-objet de l'id_token_hint envoyé pour initier cette requête.
nonce La même valeur nonce qui a été passée dans la requête.
acr acr Revendications de la demande d’authentification. Cette valeur doit correspondre à l’une des valeurs de la requête envoyée pour lancer cette requête. acr Une seule revendication doit être retournée. Pour obtenir la liste des revendications, consultez Revendications prises en chargeacr.
amr amr Revendications de la méthode d’authentification utilisée. Cette valeur doit être retournée sous la forme d’un tableau, et une seule revendication de méthode doit être retournée. Pour obtenir la liste des revendications, consultez Revendications prises en chargeamr.
Revendications acr prises en charge
Revendication Remarques
possessionorinherence L’authentification doit utiliser un facteur basé sur la possession ou l’hérédité.
knowledgeorpossession L’authentification doit utiliser un facteur basé sur les connaissances ou la possession.
knowledgeorinherence L’authentification doit utiliser un facteur basé sur les connaissances ou sur l'inhérence.
knowledgeorpossessionorinherence L’authentification doit utiliser un facteur basé sur les connaissances, un facteur basé sur la possession ou un facteur basé sur l'inhérence.
knowledge L’authentification doit utiliser un facteur basé sur les connaissances.
possession L’authentification doit utiliser un facteur basé sur la possession.
inherence L’authentification doit utiliser un facteur basé sur l'hérédité.
Revendications amr prises en charge
Revendication Remarques
face Biométrie avec reconnaissance faciale
fido FIDO2 utilisé
fpt Biométrie avec empreinte digitale
hwk Preuve de possession de la clé sécurisée par le matériel
iris Biométrie avec analyse de l’iris
otp Mot de passe à usage unique
pop Preuve de possession
retina Biométrie de l’analyse rétinienne
sc Carte à puce
sms Confirmation par message texte au numéro inscrit
swk Confirmation de la présence d’une clé sécurisée par logiciel
tel Confirmation par téléphone
vbm Biométrie avec empreinte vocale

Microsoft Entra ID exige que l'authentification multifacteur (MFA) soit remplie pour émettre un jeton contenant des revendications MFA. Par conséquent, seules les méthodes avec un type différent peuvent satisfaire la deuxième exigence de facteur. Comme mentionné précédemment, les différents types de méthodes qui peuvent être utilisés pour satisfaire le deuxième facteur sont la connaissance, la possession et l’inhérence.

Microsoft Entra ID valide le mappage de type en fonction du tableau suivant.

Méthode de revendication Catégorie Remarques
face Inhérence Biométrie avec reconnaissance faciale.
fido Possession FIDO2 utilisé. Certaines implémentations peuvent également nécessiter des données biométriques, mais le type de méthode de possession est mappé, car il s’agit de l’attribut de sécurité principal.
fpt Inhérence Biométrie avec empreinte digitale.
hwk Possession Preuve de possession d’une clé sécurisée par le matériel.
iris Inhérence Biométrie avec analyse de l’iris.
otp Possession Mot de passe à usage unique.
pop Possession Preuve de possession.
retina Inhérence Biométrie rétinienne.
sc Possession Carte à puce.
sms Possession Confirmation par SMS à un numéro enregistré.
swk Possession Preuve de présence d’une clé sécurisée par logiciel.
tel Possession Confirmation par téléphone.
vbm Inhérence Biométrie avec empreinte vocale.

Microsoft Entra ID considère que l’authentification multifacteur est satisfaite si aucun problème n’est trouvé avec le jeton et émet un jeton à l’utilisateur. Sinon, la demande de l’utilisateur échoue.

L’échec est indiqué par l’émission de paramètres de réponse d’erreur.

Paramètre Valeur Descriptif
Erreur Code d’erreur ASCII, tel que access_denied ou temporarily_unavailable

Microsoft Entra ID considère la requête réussie si id_token parameter est présent dans la réponse et si le jeton est valide. Sinon, la requête est considérée comme ayant échoué. Microsoft Entra ID échoue la tentative d’authentification d’origine en raison de l’exigence de la stratégie d’accès conditionnel.

Microsoft Entra ID abandonne unilatéralement l’état de la tentative d’authentification au bout d’environ 5 minutes après avoir effectué la redirection au fournisseur.

Gestion de la réponse aux erreurs d’ID Microsoft Entra

Les services Microsoft Azure utilisent une correlationId valeur pour mettre en corrélation les appels entre différents systèmes internes et externes. Il sert d’identificateur commun de l’ensemble de l’opération ou du flux qui implique potentiellement plusieurs appels HTTP. Lorsqu’une erreur se produit pendant l’une des opérations, la réponse contient un champ nommé ID de corrélation.

Lorsque vous contactez le support Microsoft ou un service similaire, fournissez la valeur d’ID de corrélation . Il permet d’accéder aux données de télémétrie et aux logs plus rapidement.

Par exemple :

ENTRA IDSTS70002: Error validating credentials. ENTRA IDSTS50012: External ID token from issuer 'https://sts.XXXXXXXXX.com/auth/realms/XXXXXXXXXmfa' failed signature verification. KeyID of token is 'A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u'

Trace ID: 0000aaaa-11bb-cccc-dd22-eeeeee333333

Correlation ID: aaaa0000-bb11-2222-33cc-444444dddddd

Timestamp: 2023-07-24 16:51:34Z

Contrôles personnalisés et méthodes d’authentification externe

Dans Microsoft Entra ID, les méthodes d’authentification externe et les contrôles personnalisés d’accès conditionnel peuvent fonctionner en parallèle tandis que les clients préparent et migrent vers des méthodes d’authentification externes.

Les clients qui utilisent actuellement une intégration à un fournisseur externe à l’aide de contrôles personnalisés peuvent continuer à les utiliser, de même que toutes les stratégies d’accès conditionnel qu’ils ont configurées pour gérer l’accès. Nous vous recommandons de créer un ensemble parallèle de stratégies d’accès conditionnel pendant la période de migration :

  • Les stratégies doivent utiliser le contrôle d’octroi Exiger l’authentification multifacteur au lieu de l’octroi de contrôle personnalisé.

    Remarque

    Les contrôles d'autorisation basés sur les niveaux ou forces d’authentification, y compris la force MFA intégrée, ne sont pas respectés par la méthode d’authentification externe. Les stratégies ne doivent être configurées qu’avec Exiger l’authentification multifacteur.

  • La nouvelle stratégie peut d’abord être testée avec un sous-ensemble d’utilisateurs. Le groupe de tests est exclu de la stratégie qui nécessite des contrôles personnalisés, et inclus dans la stratégie qui requiert l’authentification multifacteur. Lorsque l’administrateur est à l’aise que la stratégie qui nécessite l’authentification multifacteur est satisfaite par la méthode d’authentification externe, l’administrateur peut inclure tous les utilisateurs requis dans la stratégie avec l’octroi MFA. La stratégie configurée pour les contrôles personnalisés peut être déplacée vers le paramètre Désactivé .

Prise en charge de l’intégration

Si vous rencontrez des problèmes lorsque vous créez une intégration de méthode d’authentification externe à l’ID Microsoft Entra, l’éditeur de solutions indépendantes (ISV) Microsoft Customer Experience Engineering (CxE) peut être en mesure d’aider. Pour contacter l’équipe ISV CxE, envoyez une demande d’assistance.

Références

Glossaire

Terme Descriptif
AMF Authentification multifacteur.
Méthode d’authentification externe Méthode d’authentification d’un fournisseur autre que l’ID Microsoft Entra utilisé dans le cadre de l’authentification d’un utilisateur.
OIDC OpenID Connect est un protocole d’authentification basé sur OAuth 2.0.
00001111-aaaa-2222-bbbb-3333cccc4444 Exemple de appid valeur intégrée pour une méthode d’authentification externe.