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

# Configurer des demandes personnalisées pour les sessions anonymes

> Associez les métadonnées des sessions anonymes à des demandes personnalisées du jeton d'accès grâce au mappage de demandes.

export const ReleaseStageNotice = ({feature, stage, plans, contact, terms}) => {
  const stageTextMap = {
    "beta": "bêta",
    "ea": "Accès anticipé"
  };
  const stageText = stageTextMap[stage] || "une phase de lancement du produit";
  const prsLink = "/docs/troubleshoot/product-lifecycle/product-release-stages";
  const linkify = (text, url) => {
    return <a href={url} target="_blank" rel="noreferrer" class="link">{text}</a>;
  };
  const includeDetails = (plans, contact, terms) => {
    const hasDetails = terms || plans || contact;
    if (!hasDetails) return null;
    return <span data-as="p">
            {plans && <>Cette fonctionnalité est offerte avec les forfaits {linkify(`${plans}`, "https://auth0.com/pricing")}. </>}
            {contact && "Pour y participer, communiquez avec " + contact + ". "}
            {terms && <>En utilisant cette fonctionnalité, vous acceptez les conditions applicables de l’essai gratuit énoncées dans le {linkify("Master Subscription Agreement", "https://www.okta.com/legal")} d’Okta.</>}
        </span>;
  };
  return <Warning>
            <span data-as="p">
                <strong>La fonctionnalité {feature} est en {linkify(stageText, prsLink)}.</strong>
            </span>

            {includeDetails(plans, contact, terms)}
        </Warning>;
};

<ReleaseStageNotice feature="Anonymous Sessions" stage="ea" plans="Enterprise" contact="votre chargé de compte" />

Lorsque vos serveurs de ressources ont besoin de renseignements supplémentaires sur un utilisateur, mais que vous ne transmettez qu’un [jeton d’accès](/docs/fr-ca/secure/tokens/access-tokens), vous pouvez enrichir celui-ci de [demandes personnalisées](/docs/fr-ca/secure/tokens/json-web-tokens/create-custom-claims) afin d’y stocker des données additionnelles.

Une façon courante de définir une demande personnalisée consiste à appeler [`api.accessToken.setCustomClaim()`](/docs/fr-ca/actions/reference/credentials-exchange/credentials-exchange-api-object#api-accesstoken-setcustomclaim-key-value) dans une Action [`post-login`](/docs/fr-ca/customize/actions/explore-triggers/post-login). Toutefois, dans un contexte de [sessions anonymes](/docs/fr-ca/manage-users/sessions/anonymous-sessions), il n’y a pas de connexion, et donc aucune exécution d’Action `post-login`. Il devient alors impossible d’ajouter des demandes personnalisées au jeton d’accès de la manière habituelle, et les API qui s’attendent à ces demandes ne peuvent pas les lire.

Pour pallier ce problème, Auth0 propose le mappage des demandes, soit une correspondance directe entre les métadonnées d’une session anonyme et les jetons d’accès émis pour celle-ci. Par exemple, pour une session qui contient ceci :

```json theme={null}
{
  "user_id": "anon@1234-5678-90",
  "session_id": "sess_456",
  "metadata": {
    "language": "EN",
    "country": "US",
    "purchase": "P0123"
  }
}
```

Vous pouvez configurer votre API pour qu'elle lise la valeur `language` de chaque nouveau jeton d'accès anonyme qu'elle crée et qu'elle l'inclue sous forme de demande personnalisée nommée `lang`.

<h2 id="configure-claims-mapping">
  Configurer le mappage des demandes
</h2>

Pour configurer le mappage des demandes des sessions anonymes, vous pouvez utiliser le [Auth0 Dashboard](/docs/fr-ca/get-started/auth0-overview/dashboard) ou la [Management API](/docs/fr-ca/api/management/v2).

<Tabs>
  <Tab title="Auth0 Dashboard">
    1. Accédez à [**Dashboard > Applications > APIs**](https://manage.auth0.com/#/apis), puis sélectionnez l'API dont vous voulez configurer les demandes.

    2. Sélectionnez l'onglet **Claim Mapping**.

           <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/sessions/anonymous_sessions/anonymous_sessions_claim_mapping.png" alt="La page de mappage des demandes de l'application dans le Auth0 Dashboard" />

    3. Sous **Add a claim**, saisissez un **Name** de demande (par exemple, `lang`) et une **Expression** qui renvoie à une valeur sous `anonymous_session.metadata.*` (par exemple, `anonymous_session.metadata.language`), puis sélectionnez **Add**.

    4. Pour modifier une demande existante, sélectionnez l'icône de crayon à côté de celle-ci. Pour en supprimer une, sélectionnez l'icône de corbeille.
  </Tab>

  <Tab title="Management API">
    Pour configurer le mappage des demandes de votre API, envoyez une requête `PATCH` au terminal [`/api/v2/resource-servers/{id}`](/docs/fr-ca/api/management/v2/resource-servers/patch-resource-servers-by-id) :

    ```json theme={null}
    {
      "access_token": {
        "claims_mapping": {
          "custom_claims": [
            {
              "name": "tier",
              "expression": "anonymous_session.metadata.tier"
            },
            {
              "name": "lang",
              "expression": "anonymous_session.metadata.language"
            }
          ]
        }
      }
    }
    ```

    Chaque entrée de `custom_claims` associe le `name` d'une demande du jeton d'accès émis à une `expression` qui lit une valeur de la session anonyme, comme `anonymous_session.metadata.<key>`.

    <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
      La requête `PATCH` remplace la liste `custom_claims` au complet; vous devez donc y inclure toutes les demandes que vous voulez conserver. Faites précéder votre `PATCH` d'une requête `GET` pour récupérer les demandes existantes, apportez les modifications voulues, puis renvoyez l'objet complet dans la requête `PATCH`.
    </Callout>
  </Tab>
</Tabs>

<h2 id="next-steps">
  Prochaines étapes
</h2>

<Card title="Cas d'utilisation des sessions anonymes" icon="lightbulb" href="/docs/fr-ca/manage-users/sessions/anonymous-sessions/anonymous-sessions-use-cases" horizontal>
  Apprenez-en plus sur les cas d'utilisation des sessions anonymes.
</Card>
