Skip to main content
Pour utiliser les fonctionnalités de Client-Initiated Backchannel Authentication (CIBA), vous devez disposer d’un plan Enterprise ou d’un module complémentaire approprié. Consultez Auth0 Pricing pour en savoir plus.
Lorsque vous utilisez des notifications push mobiles avec CIBA, l’utilisateur reçoit une notification push pour s’authentifier ou autoriser une requête sur son appareil mobile enregistré. Vous pouvez envoyer des notifications push mobiles avec CIBA à l’aide de l’application Auth0 Guardian ou d’une application personnalisée intégrée au SDK Auth0 Guardian. Le flux CIBA avec notifications push mobiles authentifie et autorise les utilisateurs sur leur appareil mobile, sans nécessiter de navigateur. Comme l’appareil de consommation ne nécessite pas de session de navigateur active, l’utilisateur n’a pas besoin d’être connecté avant qu’une requête CIBA soit déclenchée. Cela garantit également que le flux CIBA n’aura aucune incidence sur les sessions existantes de l’utilisateur. Le schéma suivant illustre le flux CIBA de bout en bout avec notifications push mobiles :
Les sections suivantes expliquent étape par étape le fonctionnement de l’authentification des utilisateurs avec CIBA à l’aide de notifications push mobiles.

Prérequis

Pour lancer une requête CIBA de type push avec Auth0, vous devez :

Étape 1 : l’application cliente lance une requête CIBA

Utilisez les API User Search pour trouver l’utilisateur qui autorise la demande pour lequel vous souhaitez lancer une requête CIBA et obtenir son ID utilisateur. Une fois que vous avez l’ID utilisateur de l’utilisateur qui autorise la demande, utilisez l’Authentication API ou nos SDKs pour envoyer une requête CIBA au point de terminaison /bc-authorize :
Il existe une rate limit propre à l’utilisateur : l’authorizing user 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 à cette requête :
La valeur auth_req_id est transmise au point de terminaison /token pour vérifier périodiquement si le flux CIBA est terminé.

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

Utilisez l’Authentication API ou nos SDKs pour appeler le point de terminaison /token à l’aide du type de grant 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 intervalle d’attente d’environ cinq secondes pour le polling. Si vous effectuez le polling trop fréquemment, vous recevrez la réponse suivante, où la description varie selon l’intervalle de temporisation exponentielle :
Pour résoudre l’erreur, attendez le prochain intervalle (en secondes) avant d’interroger le point de terminaison /token.

Étape 4 : L’application mobile reçoit la notification push

Auth0 envoie une notification push à l’application mobile enregistrée de l’utilisateur ou à son appareil par l’entremise de l’application Auth0 Guardian ou d’une application personnalisée intégrée au Auth0 Guardian SDK. Si vous utilisez une application personnalisée, le Auth0 Guardian SDK fournit des méthodes pour analyser les données reçues dans la notification push et renvoyer une instance Notification prête à l’emploi. L’instance Notification comprend un ID de liaison de transaction, ou txlinkid, que l’application mobile utilise pour récupérer les détails du consentement depuis Auth0. Les exemples de code suivants montrent des mises en œuvre de notifications push mobiles pour iOS et Android à l’aide du SDK Guardian :
Votre application Auth0 Guardian ou votre application personnalisée intégrée à l’Auth0 Guardian SDK récupère les détails de consentement, c.-à-d. le contenu de binding_message, auprès de l’Auth0 Consent API. Si vous utilisez une application personnalisée, les exemples de code suivants montrent des mises en œuvre iOS et Android qui récupèrent des données auprès de l’Auth0 Consent API :
L’Auth0 Consent API répond à l’application Auth0 Guardian ou à votre application personnalisée intégrée à l’Auth0 Guardian SDK avec les détails du consentement, y compris binding_message, scope et audience. Les scopes renvoyés à l’application mobile sont filtrés selon votre politique RBAC. Pour en savoir plus, consultez Contrôle d’accès basé sur les rôles. L’application mobile présente à l’utilisateur la demande d’authentification et/ou les détails du consentement. L’exemple de code suivant montre une réponse de l’Auth0 Consent API :
L’utilisateur peut alors accepter ou refuser la requête d’authentification.

Étape 7 : L’application mobile renvoie la réponse de l’utilisateur à Auth0

L’application Auth0 Guardian ou votre application personnalisée renvoie la réponse de l’utilisateur à Auth0. Si vous utilisez une application personnalisée intégrée au Auth0 Guardian SDK, les exemples de code suivants présentent des mises en œuvre pour iOS et Android qui traitent la réponse de l’utilisateur :

L’utilisateur accepte la requête d’authentification

L’utilisateur refuse la requête d’authentification

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

L’application cliente met fin à l’interrogation périodique lorsqu’elle reçoit une réponse du point de terminaison /token. Un flux CIBA exige toujours une réponse de l’utilisateur autorisant, qu’il s’agisse d’une approbation ou d’un refus, et les autorisations déjà accordées ne sont pas vérifiées.

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

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

En savoir plus