Pour utiliser les fonctionnalités Client-Initiated Backchannel Authentication (CIBA), vous devez avoir un plan Enterprise ou un module complémentaire approprié. Consultez la page Auth0 Pricing pour plus de détails.

- Prérequis
- Étape 1 : l’application cliente lance une requête CIBA
- Étape 2 : le tenant Auth0 accuse réception de la requête CIBA
- Étape 3 : l’application cliente sonde pour obtenir une réponse
- Étape 4 : Auth0 envoie un lien à l’adresse de courriel de l’utilisateur
- Étape 5 : l’utilisateur s’authentifie dans le navigateur
- Étape 6 : le navigateur présente les détails du consentement à l’utilisateur
- Étape 7 : Auth0 reçoit la réponse de l’utilisateur une fois le flux terminé
- Étape 8 : Auth0 renvoie le jeton d’accès à l’application cliente
Conditions préalables
- Configurer Client-Initiated Backchannel Authentication pour votre tenant et votre Application, y compris les notifications par courriel.
- Définir le paramètre
requested_expirysur une valeur comprise entre 301 et 259 200 secondes (72 heures). Pour en savoir plus, consultez Configurer le canal de notification. - Si vous utilisez les notifications par courriel avec CIBA et les Rich Authorization Requests (RAR) pour l’autorisation de l’utilisateur, configurez l’invite de consentement personnalisée.
Étape 1 : L’application cliente lance une demande CIBA
/bc-authorize :
- cURL
- C#
- Go
- Java
| Paramètres | Description |
|---|---|
tenant | Nom du tenant. Il peut aussi s’agir d’un domaine personnalisé. Si le format iss_sub est utilisé, le nom du tenant est alors transmis dans la revendication iss. |
client_id | Identifiant de l’application cliente. |
client_secret | Méthode d’authentification du client utilisée pour l’authentification de l’utilisateur avec CIBA, comme Secret client, Private Key JWT ou authentification mTLS. Si vous utilisez Private Key JWT ou mTLS, vous n’avez pas besoin d’inclure le Secret client. |
scope | Doit inclure openid.La portée peut, en option, inclure offline_access pour demander un Jeton d’actualisation. Cependant, pour une autorisation unique d’une transaction avec le flux CIBA, un Jeton d’actualisation n’est pas requis et n’a aucune utilité dans ce contexte. |
user_id | ID de l’utilisateur autorisant, qui est transmis dans la structure login_hint. Si le format iss_sub est utilisé, l’ID de l’utilisateur est alors transmis dans la revendication sub.L’ID de l’utilisateur peut avoir un format différent selon le fournisseur externe. |
requested_expiry | Durée maximale, en secondes, pendant laquelle la session CIBA doit être valide. La valeur d’expiration demandée pour le flux CIBA se situe entre 1 et 259 200 secondes (72 heures), et la valeur par défaut est de 300 secondes. Incluez le paramètre requested_expiry pour définir une expiration personnalisée pour le flux CIBA.Le paramètre requested_expiry aide à déterminer quel canal de notification CIBA utilise :
|
binding_message | Message lisible par un humain utilisé pour lier le flux CIBA entre les appareils d’authentification et de consommation. Le message de liaison est obligatoire et peut contenir jusqu’à 64 caractères. Utilisez seulement des caractères alphanumériques et +-_.,:#. |
Il existe une limite de débit spécifique à chaque utilisateur, selon laquelle l’utilisateur autorisant ne recevra pas plus de 5 requêtes par minute.
Étape 2 : le tenant Auth0 accuse réception de la demande CIBA
POST, vous devriez recevoir une réponse contenant un auth-req-id qui fait référence à la demande :
auth_req_id est transmise au point de terminaison /token pour interroger périodiquement ce point de terminaison et vérifier l’achèvement du flux CIBA.
Étape 3 : L’application cliente interroge périodiquement le serveur pour obtenir une réponse
/token avec le paramètre grant_type défini à urn:openid:params:grant-type:ciba et l’auth_req_id que vous avez reçu du point de terminaison /bc-authorize :
- cURL
- C#
- Go
- Java
/token.
Étape 4 : Auth0 envoie un lien à l’adresse de courriel de l’utilisateur
login_hint, qui contient l’id de l’utilisateur qui autorise, pour lancer l’authentification de l’utilisateur sur l’appareil d’authentification :
- Le Serveur d’autorisation Auth0 envoie un courriel à l’adresse de 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_messages’affiche comme code de requête. - Le lien dirige l’utilisateur vers le navigateur au moyen d’une requête au point de terminaison
/bc-verify, où le paramètre de requêteconsentfait référence à la demande CIBA en attente de consentement.

Étape 5 : L’utilisateur s’authentifie dans le navigateur
login_hint envoyé au point de terminaison /bc-authorize lorsque l’application cliente initie une requête CIBA. Sinon, un message d’erreur s’affiche et l’utilisateur doit se déconnecter et réessayer.

binding_message, scope et audience. Les scopes sont filtrés en fonction de votre stratégie RBAC. Pour en savoir plus, consultez Contrôle d’accès basé sur les rôles.
L’exemple de code suivant illustre une réponse de l’API de consentement Auth0 :
Étape 6 : Le navigateur renvoie la réponse de l’utilisateur à Auth0
L’utilisateur accepte la demande d’authentification

L’utilisateur rejette la demande d’authentification

Étape 7 : Auth0 reçoit la réponse de l’utilisateur une fois le flux terminé
/token. Un flux CIBA exige toujours une réponse, soit une approbation soit un refus, de la part de l’utilisateur qui autorise, et les autorisations existantes ne sont pas vérifiées.
Étape 8 : Auth0 renvoie le jeton d’accès à l’application cliente
Le
refresh_token ne sera présent que si la portée offline_access a été incluse dans la requête /bc-authorize initiale.