> ## 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.

> Découvrez comment utiliser Rich Authorization Requests (RAR) avec le flux du code d’autorisation.

# Flux du code d’autorisation avec Rich Authorization Requests (RAR)

À l’aide de [Rich Authorization Requests (RAR)](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-rar), les clients peuvent demander et obtenir des données d’<Tooltip tip="Autorisation fine (FGA) : produit Auth0 permettant aux utilisateurs individuels d’accéder à des objets ou à des ressources précis." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=fine-grained+authorization">autorisation fine</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="/docs/fr-ca/glossary?term=resource+owners">propriétaires de ressources</Tooltip>, comme les utilisateurs finaux.  Les clients peuvent transmettre des données RAR au point de terminaison Pushed Authorization Request (PAR) dans le cadre du flux du code d’autorisation. Pour en savoir plus, consultez [Configure Pushed Authorization Requests](/docs/fr-ca/get-started/applications/configure-par).

Dans un flux <Tooltip tip="OAuth 2.0 : framework d’autorisation qui définit les protocoles et workflows d’autorisation." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=OAuth+2.0">OAuth 2.0</Tooltip> traditionnel, lorsqu’un client demande l’accès à un <Tooltip tip="OAuth 2.0 : framework d’autorisation qui définit les protocoles et workflows d’autorisation." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=resource+server">serveur de ressources</Tooltip> à l’aide de [scopes](/docs/fr-ca/get-started/apis/scopes), le propriétaire de la ressource accorde au client l’accès à ces ressources. Dans une requête d’autorisation enrichie, les clients peuvent transmettre un paramètre `authorization_details` au point de terminaison `/par` pour demander des permissions plus granulaires que celles demandées dans les scopes. Cela permet un contrôle plus précis de l’accès aux ressources, tant pour les clients que pour les propriétaires de ressources, et atténue les risques de sécurité associés à une attribution excessive des 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 Rich Authorization Requests](/docs/fr-ca/get-started/apis/configure-rich-authorization-requests).

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

Dans une requête 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 personnalisables. Un tableau `authorization_details` peut contenir plusieurs entrées du même type. Pour en savoir plus sur la façon d’enregistrer les types `authorization_details`, consultez [Configurer Rich Authorization Requests](/docs/fr-ca/get-started/apis/configure-rich-authorization-requests).

Auth0 présente les `authorization_details` à l’utilisateur pour qu’il les autorise dans un écran de consentement personnalisé. Pour en savoir plus, consultez [Définir l’invite de consentement personnalisée](/docs/fr-ca/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="/docs/fr-ca/glossary?term=Authorization+Server">serveur d’autorisation</Tooltip> Auth0 d’effectuer une validation précoce du `type`. Le point de terminaison `/par` transmet les requêtes d’autorisation par le canal arrière afin d’éviter que des données sensibles ne soient exposées dans le canal frontal, comme le navigateur. Une fois la requête d’autorisation transmise au point de terminaison `/par`, l’application redirigera vers le point de terminaison `/authorize`, puis poursuivra le flux du code d’autorisation. Pour en savoir plus, consultez [Flux du code d’autorisation avec PAR](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow/authorization-code-flow-with-par).

Pour terminer le flux du 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 : information d’autorisation sous la forme d’une chaîne opaque ou d’un JWT, utilisée pour accéder à une API." cta="Voir le glossaire" href="/docs/fr-ca/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 JWT](https://datatracker.ietf.org/doc/html/rfc9068#name-privacy-considerations), le client peut utiliser `authorization_details` pour comprendre l’étendue de l’autorisation qui lui a été 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é aud dans un jeton, sa valeur contient l’ID d’une application (Client ID) pour un ID Token ou d’une API (API Identifier) pour un Access Token." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=audience">audience</Tooltip> demandée est une API qui exige des [jetons d’accès JWE](/docs/fr-ca/secure/tokens/json-web-tokens), le endpoint `/oauth/token` renvoie une réponse qui omet tous les champs d’objet de `authorization_details`, à l’exception de `type`. Les claims du jeton d’accès ne sont pas modifiés 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 du code d’autorisation
</div>

Avant de configurer les Rich Authorization Requests pour le flux du code d’autorisation, vous devez :

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

Pour configurer RAR pour le flux du 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 Rich Authorization Requests](/docs/fr-ca/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 permet pas de mettre à jour RAR à l’aide d’Actions.
</Callout>

Auth0 expose le paramètre `authorization_details` dans l’[Action post-login](/docs/fr-ca/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](/docs/fr-ca/secure/highly-regulated-identity/transactional-authorization-with-authorization-code-flow#push-notifications).

<div id="what-doesnt-auth0-support">
  ## Qu’est-ce qui n’est pas pris en charge par Auth0?
</div>

Auth0 ne prend pas en charge :

* La mise à jour de RAR à l’aide d’Actions.
* La publication de types de RAR pour que les clients puissent les découvrir.
* La validation des objets RAR au-delà de la vérification de la présence d’une propriété `type` correspondant aux types autorisés pour l’API. Pour en savoir plus, consultez [Configurer RAR](/docs/fr-ca/get-started/apis/configure-rich-authorization-requests).

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

* [Configurer Rich Authorization Requests (RAR)](/docs/fr-ca/get-started/apis/configure-rich-authorization-requests)
