Pour utiliser les fonctionnalités d’authentification par canal arrière initiée par le client (CIBA), vous devez disposer d’un Enterprise Plan ou d’une option appropriée. Consultez Auth0 Pricing pour en savoir plus.
authorization_details contient des détails sur la requête que vous pouvez personnaliser dans une invite de consentement afin de les afficher à l’utilisateur.
Vous pouvez autoriser des utilisateurs avec CIBA au moyen des canaux de notification suivants :
- Notifications poussées mobiles à l’aide de l’application Auth0 Guardian et d’une application personnalisée intégrée au SDK Auth0 Guardian.
- Notifications par courriel, qui nécessitent la configuration d’une invite de consentement personnalisée.
Cas d’utilisation courants
- Une application de paiement invite l’utilisateur à confirmer un transfert d’argent. Le
authorization_detailspeut être personnalisé pour afficher les détails de la transaction. - Un agent d’IA présente à l’utilisateur les détails d’un rendez-vous médical reporté. Le
authorization_detailspeut être personnalisé pour afficher la nouvelle heure et la nouvelle date.
Fonctionnement
authorization_details au serveur d’autorisation par l’intermédiaire du point de terminaison /bc-authorize.
Le diagramme de séquence suivant illustre le flux complet d’autorisation de l’utilisateur avec CIBA :

- Prérequis
- Étape 1 : L’application cliente lance une requête CIBA
- Étape 2 : Le locataire Auth0 accuse réception de la requête CIBA
- Étape 3 : L’application cliente interroge périodiquement le serveur pour obtenir une réponse
- Étape 4 : L’appareil d’authentification reçoit la notification poussée
- Étape 5 : L’appareil d’authentification récupère les détails du consentement
- Étape 6 : L’appareil d’authentification présente les détails du consentement à l’utilisateur
- Étape 7 : L’appareil d’authentification transmet la réponse de l’utilisateur à Auth0
- Étape 8 : Auth0 reçoit la réponse de l’utilisateur une fois le flux terminé
- Étape 9 : Auth0 renvoie le jeton d’accès à l’application cliente
Prérequis
- Configurer l’authentification par canal arrière initiée par le client pour votre locataire et votre application, y compris votre canal de notification.
- Configurer les demandes d’autorisation enrichies pour votre , y compris l’enregistrement de vos types
authorization_details. - Si vous utilisez des notifications par courriel avec CIBA et RAR, configurez une invite de consentement personnalisée.
Étape 1 : L’application cliente lance une demande CIBA
authorization_details au point de terminaison /bc-authorize :
| Paramètres | Description |
|---|---|
tenant | Nom du locataire transmis dans la structure login_hint. Il peut aussi s’agir d’un domaine personnalisé. Si le format iss_sub est utilisé, le nom du locataire est alors transmis dans la revendication iss.Exemple : login_hint={"format": "iss_sub", "iss": "https://{YOUR_DOMAIN}.auth0.com/", "sub":"{USER_ID"} |
client_id | Identifiant de l’application cliente. |
client_secret | Méthode d’authentification de l’application utilisée pour authentifier l’utilisateur avec CIBA, par exemple Secret client, Private Key JWT ou l’authentification mTLS. Si vous utilisez Private Key JWT ou mTLS, vous n’avez pas besoin d’inclure le secret client. |
scope | Doit inclure openid.Le scope peut aussi inclure offline_access pour demander un jeton d’actualisation. Toutefois, pour l’autorisation ponctuelle d’une transaction avec le flux CIBA, un jeton d’actualisation n’est pas nécessaire et n’a aucune utilité dans ce contexte. |
user_id | ID utilisateur de l’utilisateur qui autorise, transmis dans la structure login_hint. Si le format iss_sub est utilisé, l’ID utilisateur est alors transmis dans la revendication sub.Exemple : login_hint={"format": "iss_sub", "iss": "https://{YOUR_DOMAIN}.auth0.com/", "sub":"{USER_ID}"}L’ID utilisateur peut avoir un format différent selon le fournisseur externe. |
requested_expiry | La durée d’expiration demandée pour le flux CIBA doit être comprise entre 1 et 259200 secondes (72 heures), et la valeur par défaut est de 300 secondes. Incluez le paramètre requested_expiry pour définir une durée d’expiration personnalisée pour le flux CIBA.Le paramètre requested_expiry aide à déterminer quel canal de notification CIBA est utilisé :
|
binding_message | Message en langage clair utilisé pour associer 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 uniquement des caractères alphanumériques et +-_.,:# |
audience | Identifiant unique de l’audience du jeton émis. |
authorization_details | Tableau JSON facultatif d’objets qui décrit les autorisations à accorder. Enregistrez la valeur type de chaque objet sur le serveur de ressources à l’aide du paramètre authorization_details du serveur de ressources. Pour en savoir plus, consultez Configure Rich Authorization Requests. |
Étape 2 : le locataire Auth0 confirme la réception de la requête CIBA
POST, vous devriez recevoir une réponse contenant un auth-req-id correspondant à la requête :
auth_req_id est transmise au point de terminaison /token pour interroger la fin du flux CIBA.
Étape 3 : L’application cliente interroge périodiquement pour obtenir une réponse
/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 endpoint /bc-authorize :
- cURL
- C#
- Go
- Java
/token.
Étape 4 : L’appareil d’authentification reçoit la notification
- Notification poussée mobile : Auth0 l’envoie à l’application Auth0 Guardian ou à une application mobile personnalisée qui intègre le SDK Auth0 Guardian.
- Notification par courriel : Auth0 l’envoie à l’adresse de courriel vérifiée de l’utilisateur.
Étape 5 : Le appareil d’authentification récupère les détails du consentement
binding_message, depuis l’API Consent d’Auth0 :
- Notification poussée mobile : L’application Auth0 Guardian ou une application personnalisée intégrée au SDK Auth0 Guardian appelle l’API Consent d’Auth0 pour récupérer les détails du consentement.
- Notification par courriel : Lorsque l’utilisateur clique sur le lien de vérification, il est redirigé vers le navigateur, qui récupère les détails du consentement depuis l’API Consent d’Auth0.
Étape 6 : L’appareil d’authentification présente les détails du consentement à l’utilisateur
binding_message, scope, audience et authorization_details, s’ils sont configurés. Les scopes renvoyés à l’application mobile sont filtrés conformément à votre stratégie de Contrôle d’accès basé sur les rôles. Pour en savoir plus, consultez Contrôle d’accès basé sur les rôles.
L’exemple de code suivant présente une réponse type de l’API Consent d’Auth0 :
authorization_details :
- Notification poussée mobile : L’application Auth0 Guardian affiche
authorization_detailsdans un écran de consentement au moyen d’une notification poussée. - Notification par courriel : Le navigateur affiche
authorization_detailsdans un écran de consentement personnalisé. Pour savoir comment personnaliser l’écran de consentement, consultez Définir une invite de consentement personnalisée.
Étape 7 : Le appareil d’authentification renvoie la réponse de l’utilisateur à Auth0
- Notification poussée mobile : L’application Auth0 Guardian ou une application personnalisée intégrée au SDK Auth0 Guardian renvoie la réponse de l’utilisateur à Auth0.
- Notification par courriel : Le navigateur renvoie la réponse de l’utilisateur à Auth0.
Étape 8 : Auth0 reçoit la réponse de l’utilisateur une fois le flux terminé
/token. Un flux CIBA exige toujours une réponse — approbation ou refus — de la part de l’utilisateur autorisant, et les octrois existants ne sont pas vérifiés. Cela signifie qu’Auth0 traite chaque demande CIBA comme une nouvelle autorisation pour l’utilisateur autorisant.
Étape 9 : Auth0 renvoie le jeton d’accès à l’application cliente
authorization_details comme les suivants :
Le
refresh_token ne sera présent que si le scope offline_access a été inclus dans la requête initiale à /bc-authorize.authorization_details à partir des détails de consentement de façon fortement typée, comme vous le feriez avec une interrogation dynamique de JSON :
- iOS
- Android
filterAuthorizationDetailsByType() pour renvoyer tous les objets authorization_details qui correspondent au type souhaité.
L’exemple de code suivant interroge authorization_details pour le type payment :
- iOS
- Android
filterAuthorizationDetailsByType() retourne uniquement les objets qui correspondent au type authorization_details spécifié. Par conséquent, votre application mobile devrait présenter à l’utilisateur tous les authorization_details pertinents pour obtenir son consentement, peu importe leur type, afin d’assurer une compréhension complète de la demande
Vous pouvez aussi interroger authorization_details lorsque l’agent IA ou l’application interroge le point de terminaison /oauth/token pour obtenir une réponse :
| Paramètres | Description |
|---|---|
grant_type | Défini sur le type d’octroi CIBA : urn:openid:params:grant-type:ciba |
client_id | Défini sur l’ID client de l’application. |
client_secret | Défini sur le secret client de l’application. |
auth_req_id | Renvoyé par le locataire Auth0 lorsqu’il accuse réception de la demande CIBA. Fait référence à la demande CIBA. |
authorization_details :
Limitations
- La modification des RAR dans Actions pour les flux CIBA.
- La publication des types RAR pour qu’ils puissent être découverts par les applications; vous devez donc préenregistrer les applications avec les types
authorization_detailsqu’elles peuvent envoyer. - La validation des objets RAR au-delà de la vérification de la présence d’une propriété
typecorrespondant aux types autorisés pour l’API. Votre serveur de ressources est responsable de la validation fine du contenu deauthorization_details. Pour en savoir plus, consultez Configure RAR.