Passer au contenu principal
À l’aide des demandes d’autorisation enrichies (RAR), les applications peuvent demander et obtenir des données d’ auprès des , par exemple les utilisateurs finaux. Les applications peuvent transmettre des données RAR au point de terminaison Pushed Authorization Request (PAR) dans le cadre du flux de code d’autorisation. Pour en savoir plus, consultez Configurer les demandes d’autorisation poussées. Dans un flux traditionnel, lorsqu’une application demande l’accès à un à l’aide de scopes, le propriétaire de la ressource accorde à l’application l’accès à ces ressources. Dans une demande d’autorisation enrichie, les applications peuvent transmettre un paramètre authorization_details au point de terminaison /par pour demander des autorisations plus granulaires que celles demandées dans les scopes. Cela permet un contrôle plus fin de l’accès aux ressources, tant pour les applications que pour les propriétaires de ressources, et atténue les risques de sécurité associés à l’octroi excessif d’accès. Comme Auth0 prend uniquement en charge la validation des types authorization_details, vous devez implémenter la validation des objets JSON dans authorization_details. Pour en savoir plus, consultez Configurer les demandes d’autorisation enrichies.

Fonctionnement

Dans une demande d’autorisation enrichie (demande d’autorisation enrichie), le paramètre authorization_details est un tableau JSON d’objets, dont chacun doit inclure un champ type représenté sous forme de chaîne. Le champ type détermine les champs d’objet qui peuvent être personnalisés. Un tableau authorization_details peut contenir plusieurs entrées du même type. Pour en savoir plus sur l’enregistrement des types authorization_details, consultez Configurer les demandes d’autorisation enrichies. Auth0 présente les authorization_details à l’utilisateur pour approbation dans un écran de consentement personnalisé. Pour en savoir plus, consultez Set customized consent prompt. Vous devez transmettre le paramètre authorization_details au point de terminaison /par, ce qui permet au Auth0 d’effectuer une validation précoce du type. Le point de terminaison /par transmet les demandes d’autorisation par le canal arrière afin d’éviter que des données sensibles ne soient exposées dans le canal frontal, par exemple dans le navigateur. Une fois la demande d’autorisation transmise au point de terminaison /par, l’application sera redirigée vers le point de terminaison /authorize, puis le flux de code d’autorisation se poursuivra. Pour en savoir plus, consultez Authorization Code Flow with PAR. Pour terminer le flux de code d’autorisation, échangez le code d’autorisation au point de terminaison /oauth/token, comme dans l’exemple suivant :
POST https://{YOUR_DOMAIN}.auth0.com/oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&client_id={YOUR_CLIENT_ID}&client_secret={YOUR_CLIENT_SECRET}&code={AUTHORIZATION_CODE}&redirect_uri=https://jwt.io
Si la requête réussit, vous devriez recevoir une réponse contenant le et le tableau authorization_details :
{
  "access_token": "ey...ZQ",
  "expires_in": 86400,
  "authorization_details": [
{
  "type": "money_transfer", 
  "instructedAmount": {"amount": 2500, "currency": "USD"},   
  "sourceAccount": "xxxxxxxxxxx1234", 
  "destinationAccount": "xxxxxxxxxxx9876", 
  "beneficiary": "Hanna Herwitz", 
  "subject": "A Lannister Always Pays His Debts"
}
  ],
  "token_type": "Bearer"
}
Dans le cadre des meilleures pratiques relatives aux JWT, l’application peut utiliser authorization_details pour comprendre la portée de l’autorisation qui lui est accordée sans avoir à inspecter le jeton d’accès. Si l’ demandée est une API qui nécessite des jetons d’accès JWE, le point de terminaison /oauth/token renvoie une réponse qui omet tous les champs d’objet de authorization_details, à l’exception de type. Les revendications du jeton d’accès ne sont pas modifiées dans la réponse.
{
  "iss": "https://my_tenant.auth0.com/",
  "sub": "auth0|me",
  "aud": "https://myapi.authzero.com",
  "iat": 1683661385,
  "exp": 1683747785,
  "azp": "my_client",
  "authorization_details": [
{
  "type": "money_transfer", 
  "instructedAmount": {"amount": 2500, "currency": "USD"},   
  "sourceAccount": "xxxxxxxxxxx1234", 
  "destinationAccount": "xxxxxxxxxxx9876", 
  "beneficiary": "Hanna Herwitz", 
  "subject": "A Lannister Always Pays His Debts"
}
  ]
}

Configurer RAR pour le flux de code d’autorisation

Avant de configurer les demandes d’autorisation enrichies pour le flux de code d’autorisation, vous devez : Pour configurer RAR pour le flux de code d’autorisation, vous devez :
  • Enregistrer les types authorization_details pour un serveur de ressources.
  • Définir l’invite de consentement personnalisée.
Pour en savoir plus, consultez Configurer les demandes d’autorisation enrichies.

Accéder à authorization_details dans Actions

Auth0 ne prend pas en charge la mise à jour de RAR avec Actions.
Auth0 expose le paramètre authorization_details dans l’Action Post-Login au moyen de la propriété event.transaction.requested_authorization_details. Vous pouvez utiliser cette propriété dans une Action pour afficher à l’utilisateur les détails de la transaction dans un défi MFA.

Qu’est-ce qu’Auth0 ne prend pas en charge?

Auth0 ne prend pas en charge :
  • La mise à jour des RAR à l’aide d’Actions.
  • La publication des types de RAR afin que les applications puissent les découvrir.
  • La validation des objets RAR autrement qu’en vérifiant qu’ils comportent une propriété type correspondant aux types autorisés pour l’API. Pour en savoir plus, consultez Configure RAR.

En savoir plus