Skip to main content
Pour utiliser les fonctionnalités de Client-Initiated Backchannel Authentication (CIBA), vous devez disposer d’un Enterprise Plan ou d’un module complémentaire approprié. Consultez Auth0 Pricing pour plus de détails.
Lorsque vous utilisez des notifications par courriel avec CIBA, l’utilisateur reçoit un courriel contenant un lien qui le redirige vers son navigateur pour s’authentifier ou autoriser une requête. Avec les notifications par courriel dans CIBA, l’utilisateur ouvre une session sur l’appareil de consommation, mais termine l’authentification en cliquant sur un lien envoyé à son adresse courriel vérifiée. Lorsque l’utilisateur clique sur le lien de vérification, il est redirigé vers son navigateur, ce qui crée une session qu’Auth0 utilise pour suivre le processus d’authentification et confirmer l’identité de l’utilisateur. Cette session est nécessaire pour faire le lien entre l’appareil d’authentification, dans ce cas-ci le navigateur, et l’appareil de consommation, comme un téléviseur intelligent. Le diagramme suivant illustre le flux CIBA de bout en bout avec notifications par courriel :
Les sections suivantes expliquent, étape par étape, comment fonctionne l’authentification de l’utilisateur avec CIBA au moyen de notifications par courriel.

Prérequis

Pour lancer une requête CIBA par courriel avec Auth0, vous devez :

Étape 1 : L’application cliente lance une demande CIBA

Utilisez les API User Search pour trouver l’utilisateur qui autorise la demande, pour lequel vous souhaitez lancer une demande CIBA, et obtenir son ID utilisateur. Une fois que vous avez l’ID utilisateur de l’utilisateur qui autorise la demande, utilisez l’API d’authentification ou nos SDKs pour envoyer une demande CIBA au point de terminaison /bc-authorize :
Il existe une limite de débit propre à l’utilisateur selon laquelle l’utilisateur autorisant ne recevra pas plus de 5 requêtes par minute.

Étape 2 : le tenant Auth0 confirme la réception de la requête CIBA

Si le tenant Auth0 reçoit bien la requête POST, vous devriez recevoir une réponse contenant un auth-req-id qui renvoie à la requête :
La valeur auth_req_id est transmise au endpoint /token pour vérifier périodiquement si le CIBA flow est terminé.

Étape 3 : L’application cliente interroge périodiquement pour obtenir une réponse

Utilisez l’Authentication API ou nos SDKs pour envoyer une requête au point de terminaison /token à l’aide du type d’octroi urn:openid:params:grant-type:ciba et de l’auth_req_id que vous avez reçu du point de terminaison /bc-authorize :
Tant que l’utilisateur autorisant n’a pas approuvé la transaction, vous devriez recevoir la réponse suivante :
Il y a un délai d’attente d’environ cinq secondes entre chaque interrogation périodique. Si vous interrogez le point de terminaison trop fréquemment, vous recevrez la réponse suivante, où la description varie selon l’intervalle de temporisation progressive :
Pour corriger l’erreur, attendez le prochain intervalle (en secondes) avant d’interroger le point de terminaison /token. Auth0 Authorization Server utilise le login_hint, qui contient l’ID utilisateur de l’utilisateur autorisant, pour lancer l’authentification de l’utilisateur sur l’appareil d’authentification :
  • Auth0 Authorization Server envoie un courriel à l’adresse courriel vérifiée de l’utilisateur.
  • Le courriel contient un lien de vérification sur lequel l’utilisateur doit cliquer pour s’authentifier. Le binding_message s’affiche comme code de requête.
  • Le lien redirige l’utilisateur vers le navigateur au moyen d’une requête à l’endpoint /bc-verify, où le paramètre de requête consent renvoie à la requête CIBA en attente de consentement.
Auth0 envoie un courriel à l’adresse courriel vérifiée de l’utilisateur

Étape 5 : L’utilisateur s’authentifie dans le navigateur

Si aucune session active n’est trouvée, le lien de vérification demandera à l’utilisateur de s’authentifier. L’utilisateur clique sur le lien pour poursuivre le processus d’authentification. Pour s’authentifier, l’utilisateur saisit son adresse courriel vérifiée et son mot de passe. L’utilisateur doit utiliser les informations d’authentification fournies au paramètre login_hint envoyé au point de terminaison /bc-authorize lorsque l’application cliente initie une demande CIBA. Sinon, un message d’erreur s’affiche et l’utilisateur doit se déconnecter et réessayer.
L’utilisateur s’authentifie dans le navigateur
Comme dans un flux de connexion standard, le déclencheur Actions post-login s’exécute dans le flux CIBA avec courriel, ce qui permet aux clients d’ajouter une logique personnalisée pour appliquer des politiques de contrôle d’accès ou demander des facteurs MFA supplémentaires. Lorsqu’il est exécuté à partir d’un lien de vérification CIBA, la valeur event.transaction.protocol est oidc-ciba-web-link, ce qui vous permet d’appliquer des règles personnalisées à ce type précis de connexion. Pour en savoir plus, consultez Déclencheur de connexion. Une fois l’authentification réussie, le navigateur présente à l’utilisateur les détails de consentement provenant de l’Auth0 Consent API, y compris binding_message, scope et audience. Les scopes sont filtrés selon votre politique RBAC. Pour en savoir plus, consultez Role-Based Access Control. L’exemple de code suivant montre une réponse de l’Auth0 Consent API :
L’utilisateur peut accepter ou refuser la requête d’authentification à ce stade-ci.

Étape 6 : Le navigateur renvoie la réponse de l’utilisateur à Auth0

Le navigateur renvoie la réponse de l’utilisateur à Auth0. Selon que l’utilisateur accepte ou rejette la requête d’authentification, Auth0 affiche les écrans de consentement suivants, que vous devez personnaliser en définissant les invites de consentement :

L’utilisateur accepte la requête d’authentification

L’utilisateur accepte la requête d’authentification

L’utilisateur refuse la requête d’authentification

L’utilisateur accepte la requête d’authentification

Étape 7 : Auth0 reçoit la réponse de l’utilisateur une fois le flux terminé

L’application cliente met fin à l’interrogation dès qu’elle reçoit une réponse de l’endpoint /token. Un flux CIBA exige toujours une réponse — approbation ou refus — de la part de l’utilisateur qui autorise la demande, et les autorisations existantes ne sont pas vérifiées.

Étape 8 : Auth0 renvoie le jeton d’accès à l’application cliente

Si l’utilisateur refuse la demande envoyée par courriel, Auth0 renvoie à l’application cliente une réponse d’erreur semblable à celle-ci :
Si l’utilisateur approuve la demande par courriel, Auth0 renvoie à l’application cliente un semblable à celui-ci :
Le refresh_token n’est présent que si la portée offline_access a été incluse dans la requête initiale envoyée à /bc-authorize.

Pour en savoir plus