Configurer les Demandes d’autorisation enrichies (RAR)

Prérequis

Avant de configurer les RAR pour une API, il faut d’abord configurer :

  • Un domaine personnalisé.

  • Un modèle de pages de connexion universelles personnalisées. Consultez le document Modèles de pages API pour savoir comment personnaliser un modèle de page de connexion universelle à l’aide du Management API.

Configurer le serveur de ressources

Définir la politique de consentement

La politique de consentement détermine quand et comment Auth0 affiche l’invite de consentement à l’utilisateur final.

Le serveur de ressources (c’est-à-dire l’API) enregistré dans un locataire Auth0 doit définir à l’avance la politique de consentement à appliquer pour autoriser la demande RAR.

La politique de consentement par défaut est null ou non définie. Auth0 prend également en charge la politique de consentement transactional-authorization-with-mfa qui couvre le cas d’utilisation de l’autorisation transactionnelle qui nécessite toujours le consentement explicite du propriétaire de la ressource (c’est-à-dire l’utilisateur final). Le tableau ci-dessous résume le comportement de la politique de consentement d’Auth0 :

Est-ce une demande d’autorisation riche? MFA requise? null ou non défini (par défaut) transactional-authorization-with-mfa
Non Non Le consentement standard est affiché à moins qu’il n’y ait une autorisation qui inclut l’accès demandé. Le consentement personnalisé est affiché indépendamment des accès précédemment accordés.
Oui Non La demande d’autorisation est rejetée avec invalid_request. Le consentement personnalisé est affiché indépendamment des accès précédemment accordés.
Oui Oui, avec un facteur d’authentification qui n’est pas une notification poussée La demande d’autorisation est rejetée avec invalid_request. Le consentement personnalisé est affiché une fois que l’utilisateur a répondu aux défis MFA.
Oui Oui, avec un facteur de notification poussée La demande d’autorisation est rejetée avec invalid_request. Aucun consentement n’est affiché. Le consentement est traité dans l’application mobile qui a reçu le défi de notification poussée.

Définissez la politique de consentement dans vos paramètres d’API à l’aide de Auth0 Dashboard.

  1. Naviguez jusqu’à Auth0 Dashboard > Applications > APIs.

  2. Sélectionnez l’onglet Paramètres.

  3. Sous Paramètres d’accès, sélectionnez Autorisation de transaction avec la MFA.

  4. Enregistrez vos modifications.

Dashboard > Applications > APIs > Settings > Access Settings

Enregistrer les types authorization_details.

Le serveur de ressources doit enregistrer les types authorization_details qui sont acceptés, de la même manière qu’il enregistre les permissions autorisées. Assurez-vous que authorization_details respecte ces exigences :

  • Maximum de 5 Ko

  • La valeur doit être un jeton JSON valide

  • Doit être un tableau d’objets

  • Maximum de 5 entrées dans le tableau

  • Chaque objet doit avoir une propriété type (qui est préenregistrée sur l’API)

  • Maximum de 10 propriétés par objet

  • La longueur maximale des noms de propriété est de 255

  • La longueur maximale de la valeur de propriété est de 255

  • Maximum de 5 niveaux d’objets imbriqués

  • Les noms de propriétés ne peuvent contenir que les caractères suivants : a-zA-Z0-9_.-

Vous pouvez enregistrer des types authorization_details avec l’Auth0 Dashboard ou avec la Management API.

Vous pouvez ajouter des authorization_details dans Auth0 Dashboard.

  1. Naviguez jusqu’à Auth0 Dashboard > Applications > API.

  2. Sélectionnez l’onglet Autorisations .

  3. Sous Ajouter un type de détails d’autorisation, ajoutez payment_initiation. Sélectionnez l’option Ajouter. Ajoutez money_transfer et sélectionnez l’option Ajouter.

Créer un serveur de ressources pour les demandes RAR

La requête POST suivante crée et configure un serveur de ressources pour recevoir des demandes RAR :

curl --location --request POST 'https://$tenant/api/v2/resource-servers' \
  --header 'Authorization: Bearer $management_access_token' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "name": "Payments API",
  "identifier": "https://payments.api/",
  "consent_policy": "standard",
  "authorization_details": [{"type": "payment_initiation"}]
  }'

Was this helpful?

/

Définir une invite de consentement personnalisée pour afficher les détails de l’autorisation

Pour afficher les détails de l’autorisation d’une demande RAR dans l’écran de consentement, vous devez configurer l’invite customized-consent avec les partiels de modèle appropriés.

La demande PUT suivante configure les éléments partiels du consentement personnalisé :

curl --location --request PUT "https://$tenant/api/v2/prompts/customized-consent/partials" \
    --header "Authorization: Bearer $management_access_token" \
    --header "Content-Type: application/json" \
    --data '{
          "customized-consent": {
            "form-content": "<div style=\"font-size: 1.3em; font-weight: bold;\">Operation Details</div><hr style=\"margin: 10px 0;\"><div style=\"margin-bottom: 20px;\"></div><div style=\"font-weight: bold;\">Transaction Type</div><div>{{ transaction.params.authorization_details[0].type }}</div><div style=\"margin-bottom: 20px;\"></div><div style=\"font-weight: bold;\">Amount</div><div>{{ transaction.params.authorization_details[0].instructedAmount.amount }} {{ transaction.params.authorization_details[0].instructedAmount.currency }}</div><div style=\"margin-bottom: 20px;\"></div><div style=\"font-weight: bold;\">Recipient</div><div>{{ transaction.params.authorization_details[0].beneficiary }}</div><div style=\"margin-bottom: 20px;\"></div><div style=\"font-weight: bold;\">Destination Account</div><div>{{ transaction.params.authorization_details[0].destinationAccount }}</div><div style=\"margin-bottom: 20px;\"></div>"
          }
        }'

Was this helpful?

/

Le modèle de consentement personnalisé rend les détails de l’autorisation dans l’invite de consentement suivante qu’Auth0 affiche à l’utilisateur final :

Pour en savoir plus sur la personnalisation de l’invite de consentement, consultez Personnaliser les nouvelles pages de connexion universelle et Personnaliser la nouvelle connexion universelle avec l’éditeur sans code.