Valider les jetons d’identité pour la MFA
amr (référence des méthodes d’authentification), un tableau JSON de chaînes qui indique la méthode d’authentification utilisée lors de la connexion. Elle doit être présente dans le payload du jeton d’identité et doit contenir la valeur mfa.
Ses valeurs peuvent inclure n’importe laquelle des Authentication Method Reference Values prédéfinies. Comme elle peut contenir des revendications autres que mfa, vous devez, lors de la validation, vérifier à la fois sa présence et si son contenu comprend la valeur mfa.
Si un utilisateur tente d’accéder à une page restreinte et que le jeton indique qu’il ne s’est pas authentifié avec la MFA, vous pouvez alors relancer l’authentification, que vous avez configurée pour déclencher la MFA à l’aide d’une Action. Une fois que l’utilisateur a fourni le deuxième facteur, un nouveau jeton d’identité contenant la revendication amr est généré et envoyé à l’application.
- Obtenez le jeton d’identité.
- Vérifiez la signature du jeton, pour confirmer que l’expéditeur du jeton est bien celui qu’il prétend être et pour vous assurer que le message n’a pas été modifié en cours de route.
- Validez les revendications suivantes :
| Revendication | Description |
|---|---|
exp | Expiration du jeton |
iss | Émetteur du jeton |
aud | Destinataire prévu du jeton |
amr | Si amr n’est pas présent dans le payload ou ne contient pas la valeur mfa, l’utilisateur ne s’est pas connecté avec la MFA. Si amr est présent dans le payload et contient la valeur mfa, l’utilisateur s’est bien connecté avec la MFA. |
Exceptions relatives à la revendication AMR
amr est requise, sauf dans les cas d’utilisation suivants :
- Dans les flux de connexion hébergés, la revendication
amrn’est injectée dans le jeton d’identité qu’après que l’utilisateur a réussi un défi MFA. Si l’application utilise l’authentification silencieuse ou des Jetons d’actualisation pour des jetons d’identité nouvellement émis, la revendicationamrne sera pas présente, puisque l’utilisateur a déjà effectué une connexion avec MFA. - Les jetons émis par l’API MFA ne contiennent pas la revendication
amr. La revendicationamrindique les méthodes d’authentification utilisées lorsque l’utilisateur reçoit l’ID Token. Dans le processus d’authentification de l’API MFA, l’application contrôle le flux d’authentification et peut imposer MFA au besoin.
Exemple : valeurs avec MFA
Exemple : valeurs sans MFA
Scénario : Données sur les salaires avec notifications push
Prérequis
- Enregistrer une application Web.
- Créer une connexion de base de données.
- Activer la MFA pour utiliser les notifications push.
Créer une Action
- La variable
CLIENTS_WITH_MFAcontient les des applications auxquelles vous souhaitez appliquer cette Action. Vous pouvez supprimer cet élément (ainsi que la conditionifqui suit) si vous n’en avez pas besoin. - La propriété
event.transaction.acr_valuesest un tableau de chaînes qui contient la ou les références de classe du contexte d’authentification (acr). Il s’agit d’une propriété facultative qui n’existe que lorsque l’application l’inclut dans la requête d’authentification envoyée au . Dans cet exemple, notre application web l’inclura dans la requête d’authentification, mais seulement lorsqu’un utilisateur qui ne s’est pas déjà authentifié avec MFA tente d’accéder aux données salariales. Lorsque notre application web l’inclut, elle définit la valeurhttp://schemas.openid.net/pape/policies/2007/06/multi-factor, ce qui indique que nous voulons que le serveur d’autorisation exige la MFA; la valeur de la propriétéapi.multifactorque nous définissons dans notre code demandera alors à l’utilisateur d’effectuer la MFA à l’aide de l’une des méthodes disponibles configurées dans le locataire. Pour en savoir plus sur la méthodeapi.multifactor.enable(), consultez Action Triggers: objet API post-login. - La stratégie
http://schemas.openid.net/pape/policies/2007/06/multi-factordéfinit un mécanisme d’authentification dans lequel l’utilisateur final s’authentifie auprès du fournisseur en fournissant plus d’un facteur d’authentification, c’est-à-dire la MFA. Pour en savoir plus, consultez OpenID Provider Authentication Policy Extension 1.0.
Configurer l’application
amr avec la valeur mfa.) Si l’utilisateur s’est déjà authentifié avec la MFA, l’application Web affichera la page restreinte; sinon, l’application Web enverra une nouvelle demande d’authentification qui inclut le paramètre acr_values avec la valeur suivante :
http://schemas.openid.net/pape/policies/2007/06/multi-factor, ce qui déclenchera l’Action.
L’application Web, dans ce scénario, utilise le flux de code d’autorisation pour s’authentifier; la demande est donc la suivante :
Une fois l’utilisateur authentifié avec MFA, l’application web reçoit le code d’autorisation, qui doit être échangé contre le nouveau jeton d’identité. Celui-ci devrait maintenant contenir la revendication amr ayant pour valeur mfa. Pour savoir comment échanger le code contre un jeton d’identité, consultez Ajouter Login à l’aide du flux de code d’autorisation.
Valider le jeton d’identité
jwt.verify), décode le jeton, vérifie si le payload contient amr et, le cas échéant, affiche les résultats dans la console.