> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Apprenez à utiliser les demandes d’autorisation enrichies (RAR) avec le flux de code d’autorisation.

# Flux de code d’autorisation avec les demandes d’autorisation enrichies (RAR)

À l’aide des [demandes d’autorisation enrichies (RAR)](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-rar), les applications peuvent demander et obtenir des données d’<Tooltip tip="Autorisation granulaire (FGA) : produit Auth0 permettant aux utilisateurs individuels d’accéder à des objets ou à des ressources précis." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=fine-grained+authorization">autorisation granulaire</Tooltip> auprès des <Tooltip tip="Resource Owner : entité (comme un utilisateur ou une application) capable d’accorder l’accès à une ressource protégée." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=resource+owners">propriétaires de ressources</Tooltip>, 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](/fr-CA/docs/get-started/applications/configure-par).

Dans un flux <Tooltip tip="OAuth 2.0 : cadre d’autorisation qui définit des protocoles et des flux d’autorisation." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=OAuth+2.0">OAuth 2.0</Tooltip> traditionnel, lorsqu’une application demande l’accès à un <Tooltip tip="OAuth 2.0 : cadre d’autorisation qui définit des protocoles et des flux d’autorisation." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=resource+server">serveur de ressources</Tooltip> à l’aide de [scopes](/fr-CA/docs/get-started/apis/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](/fr-CA/docs/get-started/apis/configure-rich-authorization-requests).

<div id="how-it-works">
  ## Fonctionnement
</div>

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](/fr-CA/docs/get-started/apis/configure-rich-authorization-requests).

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](/fr-CA/docs/get-started/apis/configure-rich-authorization-requests#set-customized-consent-prompt).

Vous devez transmettre le paramètre `authorization_details` au point de terminaison `/par`, ce qui permet au <Tooltip tip="Serveur d’autorisation : serveur centralisé qui contribue à définir les limites de l’accès d’un utilisateur. Par exemple, votre serveur d’autorisation peut contrôler les données, les tâches et les fonctionnalités accessibles à un utilisateur." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Authorization+Server">serveur d’autorisation</Tooltip> 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](/fr-CA/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/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 :

```http lines theme={null}
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 <Tooltip tip="Jeton d’accès : justificatif d’autorisation se présentant sous la forme d’une chaîne opaque ou d’un JWT, utilisé pour accéder à une API." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=access+token">jeton d’accès</Tooltip> et le tableau `authorization_details` :

```json lines theme={null}
{
  "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](https://datatracker.ietf.org/doc/html/rfc9068#name-privacy-considerations), 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’<Tooltip tip="Audience : identifiant unique de l’audience d’un jeton émis. Nommée aud dans un jeton, sa valeur contient l’ID d’une application (ID client) pour un ID Token ou d’une API (identifiant d’API) pour un Jeton d’accès." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=audience">audience</Tooltip> demandée est une API qui nécessite des [jetons d’accès JWE](/fr-CA/docs/secure/tokens/json-web-tokens), 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.

```json lines theme={null}
{
  "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"
}
  ]
}
```

<div id="configure-rar-for-the-authorization-code-flow">
  ## Configurer RAR pour le flux de code d’autorisation
</div>

Avant de configurer les demandes d’autorisation enrichies pour le flux de code d’autorisation, vous devez :

* Créer un [domaine personnalisé](/fr-CA/docs/customize/custom-domains).
* Créer un [modèle personnalisé de pages Universal Login](/fr-CA/docs/customize/login-pages/universal-login/customize-templates). Pour savoir comment personnaliser un modèle de page <Tooltip tip="Universal Login : votre application redirige vers Universal Login, hébergé sur le serveur d’autorisation d’Auth0, afin de vérifier l’identité d’un utilisateur." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Universal+Login">Universal Login</Tooltip>, consultez la documentation de l’[API des modèles de page](/fr-CA/docs/customize/login-pages/universal-login/customize-templates#page-templates-api).

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](/fr-CA/docs/get-started/apis/configure-rich-authorization-requests).

<div id="access-authorization_details-in-actions">
  ## Accéder à `authorization_details` dans Actions
</div>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 ne prend pas en charge la mise à jour de RAR avec Actions.
</Callout>

Auth0 expose le paramètre `authorization_details` dans l’[Action Post-Login](/fr-CA/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger/post-login-event-object) 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](/fr-CA/docs/secure/highly-regulated-identity/transactional-authorization-with-authorization-code-flow#push-notifications).

<div id="what-doesnt-auth0-support">
  ## Qu’est-ce qu’Auth0 ne prend pas en charge?
</div>

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](/fr-CA/docs/get-started/apis/configure-rich-authorization-requests).

<div id="learn-more">
  ## En savoir plus
</div>

* [Configurer les demandes d’autorisation enrichies (RAR)](/fr-CA/docs/get-started/apis/configure-rich-authorization-requests)
