Configurer les Demandes d’autorisation enrichies (RAR)
Prérequis
Avant de configurer les RAR pour une API, il faut d’abord configurer :
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.
Naviguez jusqu’à Auth0 Dashboard > Applications > APIs.
Sélectionnez l’onglet Paramètres.
Sous Paramètres d’accès, sélectionnez Autorisation de transaction avec la MFA.
Enregistrez vos modifications.

La demande PATCH suivante envoyée au point de terminaison Mettre à jour un serveur de ressources de Management API définit la politique de consentement avec la valeur transactional-authorization-with-mfa
pour un serveur de ressources existant :
curl --location --request PATCH 'https://$tenant/api/v2/resource-servers/$resource-server-id' \ --header 'Authorization: Bearer $management_access_token' \ --header 'Content-Type: application/json' \ --data-raw '{ "consent_policy": "standard" }'
Was this helpful?
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.
Naviguez jusqu’à Auth0 Dashboard > Applications > API.
Sélectionnez l’onglet Autorisations .
Sous Ajouter un type de détails d’autorisation, ajoutez
payment_initiation
. Sélectionnez l’option Ajouter. Ajoutezmoney_transfer
et sélectionnez l’option Ajouter.
La demande PATCH suivante envoyée au point de terminaison Mettre à jour un serveur de ressources de Management API enregistre payment_initiation
et money_transfer
comme types de authorization_details
pour un serveur de ressources existant :
curl --location --request PATCH 'https://$tenant/api/v2/resource-servers/$resource-server-id' \
--header 'Authorization: Bearer $management_access_token' \
--header 'Content-Type: application/json' \
--data-raw '{
"authorization_details": [{"type": "payment_initiation"}, {"type": "money_transfer"}]
}'
Was this helpful?
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.