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

# Déconnexion des utilisateurs d’Auth0 avec le point de terminaison OIDC

> Découvrez comment déconnecter l’utilisateur avec le point de terminaison de déconnexion OIDC.

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****MASKED*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

export const codeExample1 = `https://{yourDomain}/oidc/logout?id_token_hint={yourIdToken}&post_logout_redirect_uri={yourCallbackUrl}`;

export const codeExample2 = `curl --request GET \\
  --url 'https://{yourDomain}/oidc/logout' \\
  --header 'content-type: application/x-www-form-urlencoded' \\
  --data 'id_token_hint={yourIdToken}' \\
  --data 'post_logout_redirect_uri={yourCallbackUrl}'`;

export const codeExample3 = `https://{yourDomain}/oidc/logout?{clientId}={yourClientId}&logout_hint={sessionId}`;

export const codeExample4 = `https://{yourDomain}/oidc/logout?post_logout_redirect_uri=http%3A%2F%2Fwww.example.com`;

export const codeExample5 = `PATCH https://{yourDomain}/api/v2/clients/{clientId}
Authorization: Bearer {yourMgmtApiAccessToken}
Content-Type: application/json

{
  "allowed_logout_urls": [
    "https://www.example.com",
    "https://www.example.com/logout"
  ]
}
`;

export const codeExample6 = `PATCH https://{yourDomain}/api/v2/tenants/settings
Authorization: Bearer {yourMgmtApiAccessToken}
Content-Type: application/json

{
  "allowed_logout_urls": [
    "https://www.example.com",
    "https://www.example.com/logout"
  ]
}
`;

Auth0 implémente la [déconnexion initié par RP 1.0](https://openid.net/specs/openid-connect-rpinitiated-1_0.html) d’<Tooltip href="/docs/fr-ca/glossary?term=openid" tip="OpenID
Norme ouverte d’authentification qui permet aux applications de vérifier l’identité des utilisateurs sans avoir à collecter leurs informations de connexion." cta="Voir le glossaire">OpenID</Tooltip> Connect pour la déconnexion de l’utilisateur final. Cette norme fait partie de l’ensemble de [spécifications finales](https://openid.net/developers/specs/) OpenID Connect.

## Fonctionnement

La déconnexion initiée par RP est un scénario dans lequel une partie utilisatrice (utilisateur) demande au fournisseur OpenID (Auth0) de se déconnecter.

1. L’utilisateur lance une demande de déconnexion dans votre application.
2. Votre application dirige l’utilisateur vers le point de terminaison de [déconnexion OIDC](/docs/fr-ca/api/authentication#oidc-logout) de l’Authentication API Auth0.
3. Auth0 redirige l’utilisateur vers la destination appropriée en fonction des [paramètres de point de terminaison de déconnexion OIDC](#oidc-logout-endpoint-parameters) fournis.

## Configurer la déconnexion initiée par RP

Pour configurer la déconnexion initiée par RP, vous devez vous assurer que votre application peut trouver le paramètre `end_session_endpoint` dans le [document de métadonnées de découverte](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig) de votre locataire Auth0 et qu’elle appelle le point de terminaison de déconnexion OIDC avec les paramètres nécessaires.

### Activer la découverte des points de terminaison

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Pour les locataires Auth0 créés le 14 novembre 2023 ou après cette date, la **Découverte du point de terminaison Déconnexion initiée par la partie de confiance** est activée par défaut.
</Callout>

Vous pouvez activer **RP-Initiated Logout End Session Endpoint Discovery (Découverte du point de terminaison de fin de session de déconnexion initiée par RP)** dans l’<Tooltip href="/docs/fr-ca/glossary?term=auth0-dashboard" tip="Auth0 Dashboard
Principal produit d’Auth0 pour configurer vos services." cta="Voir le glossaire">Auth0 Dashboard</Tooltip> ou avec l’Auth0 Management API.

<Tabs>
  <Tab title="Dashboard">
    Pour activer la **Détection du point de terminaison Déconnexion initiée par la partie de confiance** dans Dashboard :

    1. Rendez-vous dans [Dashboard > Paramètres > Avancé](https://manage.auth0.com/#/tenant/advanced).
    2. Localisez la section **Connexion et déconnexion**.
    3. Activez le bouton à bascule **Détection du point de terminaison Déconnexion initiée par la partie de confiance**.
  </Tab>

  <Tab title="Management API">
    Pour activer **Détection du point de terminaison Déconnexion initiée par la partie de confiance** avec Management API :

    1. [Obtenez un jeton d’accès à Management API](/docs/fr-ca/secure/tokens/access-tokens/management-api-access-tokens/get-management-api-access-tokens-for-production) qui inclut la permission `update:tenant_settings`.
    2. Appelez le point de terminaison [Mise à jour des paramètres du locataire](/docs/fr-ca/api/management/v2/tenants/patch-settings) de Management API avec la charge utile suivante :

       ```json lines theme={null}
       {
         "oidc_logout": {
           "rp_logout_end_session_endpoint_discovery": true
         }
       }
       ```
  </Tab>
</Tabs>

### Appeler le point de terminaison de déconnexion OIDC

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  La plupart des [bibliothèques de trousses SDK](/docs/fr-ca/libraries) d’Auth0 sont conformes à l’OIDC et prennent en charge la déconnexion initiée par la partie de confiance.
</Callout>

Quand vous appelez le point de terminaison de déconnexion OIDC, Auth0 vous recommande de fournir le paramètre `id_token_hint`.

Si votre application ne peut pas stocker les jetons d’ID en toute sécurité, vous pouvez fournir les paramètres `logout_hint` et `client_id` à la place.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Vous pouvez appeler le point de terminaison de déconnexion OIDC avec des informations redondantes.

  Par exemple, vous pouvez envoyer les paramètres `id_token_hint` et `logout_hint`, ou les paramètres `id_token_hint` et `client_id`.

  Dans tous les cas, Auth0 vérifie la cohérence des données relatives à l’utilisateur et à la session et renvoie une erreur en cas de divergence.
</Callout>

#### Paramètres du point de terminaison de déconnexion OIDC

Le point de terminaison de [déconnexion OIDC](/docs/fr-ca/api/authentication#oidc-logout) de l’Authentication API prend en charge les paramètres suivants :

| Paramètre                  | Requis?    | Description                                                                                                                                                                                                                                      |
| -------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id_token_hint`            | Recommandé | Jeton d’ID précédemment émis pour l’utilisateur. Il indique l’utilisateur à déconnecter.                                                                                                                                                         |
| `logout_hint`              | Facultatif | Valeur de l’identifiant de session (`sid`) qui indique l’utilisateur à déconnecter.                                                                                                                                                              |
| `post_logout_redirect_uri` | Facultatif | Valeur d’URL de redirection qui indique où rediriger l’utilisateur après la déconnexion.                                                                                                                                                         |
| `federated`                | Facultatif | Indique à Auth0 de déconnecter l’utilisateur de son fournisseur d’identité.                                                                                                                                                                      |
| `state`                    | Facultatif | Valeur opaque que l’application ajoute à la requête initiale de déconnexion, et qu’Auth0 inclut lors de la redirection vers le `post_logout_redirect_uri`.                                                                                       |
| `ui_locales`               | Facultatif | Liste de paramètres régionaux délimitée par des espaces, utilisée pour restreindre la liste des langues de la demande. Les premiers paramètres régionaux de la liste doivent correspondre aux paramètres régionaux activés dans votre locataire. |

#### Paramètre id\_token\_hint

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 recommande d’utiliser le paramètre `id_token_hint` lorsque vous appelez le point de terminaison de déconnexion OIDC.
</Callout>

La valeur du paramètre `id_token_hint` doit être le jeton d’ID qu’Auth0 a émis à l’utilisateur après son authentification.

Le jeton d’ID contient l’émetteur des demandes enregistrées (`iss`), l'<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-2" tip="">audience</Tooltip> (`aud`) et l’ID de la session Auth0 (`sid`) pour vérification. Pour en savoir plus sur les demandes relatives aux jetons d’ID, consultez [Structure des jetons d’ID](/docs/fr-ca/secure/tokens/id-tokens/id-token-structure).

##### Exemples

<Tabs>
  <Tab title="HTTP">
    <AuthCodeBlock children={codeExample1} language="http" />
  </Tab>

  <Tab title="cURL">
    <AuthCodeBlock children={codeExample2} language="bash" />
  </Tab>
</Tabs>

#### Paramètre logout\_hint

La valeur du paramètre `logout_hint` doit être l’identification de la session (`sid`) de la session Auth0 actuelle de l’utilisateur.

L’identification de la session (`sid`) est fournie sous forme de demandes enregistrée dans le jeton d’ID qu’Auth0 a émis à l’utilisateur après son authentification.

<Warning>
  Vous devez utiliser l’ID de session (`sid`) associé au jeton d’ID émis par Auth0 au moment où la session en cours a commencé. Auth0 ignore les demandes dont les valeurs sont aléatoires ou ne reflètent pas les données de la session en cours.
</Warning>

##### Exemple

<AuthCodeBlock children={codeExample3} language="http" />

#### Paramètre post\_logout\_redirect\_uri

La valeur du paramètre `post_logout_redirect_uri` doit être une URL codée valide qui a été enregistrée dans la liste des **URL de déconnexion autorisées** dans vos :

1. [Paramètres d’application](/docs/fr-ca/get-started/applications/application-settings#application-uris) : Si vous fournissez le paramètre `id_token_hint` ou les paramètres `logout_hint` et `client_id`.
2. [Tenant settings (Paramètres du locataire)](/docs/fr-ca/get-started/tenant-settings#login-and-logout) : Si vous fournissez uniquement le paramètre `logout_hint`.

##### Exemple

<AuthCodeBlock children={codeExample4} language="http" />

##### Mettre à jour les URL de déconnexion autorisées de l’application

Vous pouvez enregistrer une URL avec la liste des **URL de déconnexion autorisées** de votre application dans l’Auth0 Dashboard ou avec l’Auth0 Management API.

<Tabs>
  <Tab title="Dashboard">
    Pour enregistrer une URL avec votre liste d’application de **URL de déconnexion autorisées** dans Dashboard :

    1. Allez à [Dashboard > Applications > Applications](https://manage.auth0.com/#/applications).
    2. Sélectionnez votre application.
    3. Localisez la section **Application URIs (URI de l’application)** .
    4. Mettez à jour **URL de déconnexion autorisées** en suivant pour ce faire les [instructions fournies](#allowed-logout-urls-guidelines).
  </Tab>

  <Tab title="Management API">
    <Warning>
      When you call the Management API [Update a client](/docs/fr-ca/api/management/v2/clients/patch-clients-by-id) endpoint, it overwrites all existing configuration data for the fields provided in the request body.

      To avoid accidental loss of data, call the Management API [Get a client](/docs/fr-ca/api/management/v2/clients/get-clients-by-id) endpoint first to retrieve your application’s current configuration data.
    </Warning>

    Pour enregistrer une URL avec la liste des **URL de déconnexion autorisées** de votre application avec Management API :

    1. [Obtenir un jeton d’accès à Management API](https://auth0.com/docs/secure/tokens/access-tokens/get-management-api-access-tokens-for-production)  qui comprend les permissions `update:clients`.
    2. Appelez le point de terminaison [Mettre à jour un client](https://auth0.com/docs/api/management/v2/clients/patch-clients-by-id) de Management API et assurez-vous d’inclure l’URL dans la valeur du champ `allowed_logout_urls` dans le corps de la demande.

    <AuthCodeBlock children={codeExample5} language="http" lines />
  </Tab>
</Tabs>

##### Mettre à jour les URL de déconnexion autorisées du locataire

Vous pouvez enregistrer une URL avec la liste des **URL de déconnexion autorisées** du locataire dans l’Auth0 Dashboard ou avec l’Auth0 Management API.

<Tabs>
  <Tab title="Dashboard">
    Pour enregistrer une URL avec la liste **URL de déconnexion autorisées** de votre locataire dans Dashboard :

    1. Allez à [Dashboard > Paramètres > Avancés](https://manage.auth0.com/#/tenant/advanced).
    2. Localisez la section **Connexion et déconnexion**.
    3. Mettez à jour les **URL de déconnexion autorisées** en suivant pour ce faire les [instructions fournies](#allowed-logout-urls-guidelines).
  </Tab>

  <Tab title="Management API">
    <Warning>
      When you call the Management API [Update tenant settings](/docs/fr-ca/api/management/v2/tenants/patch-settings) endpoint, it overwrites all existing configuration data for the fields provided in the request body.

      To avoid accidental loss of data, call the Management API [Get tenant settings](/docs/fr-ca/api/management/v2/tenants/tenant-settings-route) endpoint to retrieve your tenant’s current configuration data first.
    </Warning>

    Pour enregistrer une URL avec la liste des **URL de déconnexion autorisées** de votre locataire avec la Management API :

    1. [Obtenez un jeton d’accès à Management API](/docs/fr-ca/secure/tokens/access-tokens/management-api-access-tokens/get-management-api-access-tokens-for-production)  qui comprend les permissions `update:tenant_settings`.
    2. Appelez le point de terminaison [Mettre à jour les paramètres du locataire](/docs/fr-ca/api/management/v2/tenants/patch-settings) de Management API et assurez-vous d’inclure l’URL dans la valeur du champ `allowed_logout_urls` dans le corps de la demande.

    <AuthCodeBlock children={codeExample6} language="http" lines />
  </Tab>
</Tabs>

##### Directives relatives aux URL de déconnexion autorisées

Quand vous mettez à jour les **URL de déconnexion autorisées**, suivez les directives ci-dessous pour éviter des erreurs de validation :

* Séparez plusieurs valeurs d’URL par une virgule (`,`).
* Incluez la partie du schéma de l’URL (par exemple`https://` ).

Vous pouvez utiliser un astérisque (`*`) comme caractère générique pour les sous-domaines (tels que `https://*.example.com`), mais nous vous conseillons de ne pas utiliser de caractères génériques dans les environnements de production. Pour en savoir plus, veuillez consulter [Paramètres fictifs d'URL de sous-domaine](/docs/fr-ca/get-started/applications/wildcards-for-subdomains#wildcard-url-placeholders).

##### Ajouter des paramètres de chaîne de requête à post\_logout\_redirect\_uri

Le point de terminaison de déconnexion OIDC analyse les paramètres de chaîne de requête dans l’URL fournie au paramètre `post_logout_redirect_uri`.

Vous devez inclure **l'URL exacte avec les paramètres de chaîne de requête** dans vos **URL de déconnexion autorisées**, sinon la demande de déconnexion sera refusée. L'URL doit correspondre exactement, y compris tous les noms et valeurs des paramètres de requête.

Par exemple, si vous passez `https://example.com/logout?myParam=1234` au paramètre `post_logout_redirect_uri` (encodé comme `https%3A%2F%2Fexample.com%2Flogout%3FmyParam%3D1234`), vous devez inclure l'URL complète `https://example.com/logout?myParam=1234` dans vos **URL de déconnexions autorisées**.

<Warning>
  Les valeurs dynamiques des paramètres de requête ne sont pas prises en charge. Chaque combinaison unique de noms et de valeurs de paramètres de requête doit être enregistrée comme une entrée séparée dans vos **URL de déconnexion autorisées**.
</Warning>

#### Paramètre ui\_locales

La valeur du paramètre `ui_locales` doit être une liste de paramètres [locaux pris en charge](/docs/fr-ca/customize/internationalization-and-localization/universal-login-internationalization#new-universal-login-experience-localization), délimités par des espaces.

La première valeur fournie dans la liste doit correspondre au [paramètre de la langue par défaut de votre locataire](/docs/fr-ca/get-started/tenant-settings#languages).

#### paramètre federated

Le paramètre `federated` ne nécessite pas de valeur.

Si vous incluez le paramètre `federated` lorsque vous appelez le point de terminaison de déconnexion OIDC, Auth0 tente de [déconnecter l’utilisateur de son fournisseur d’identité](/docs/fr-ca/authenticate/login/logout/log-users-out-of-idps).

## Invite de consentement de déconnexion

La norme OIDC définit que le flux de déconnexion doit être interrompu pour demander le consentement de l’utilisateur si le fournisseur OpenID ne peut pas vérifier que la demande a été faite par ce dernier.

Auth0 applique ce comportement en affichant une invite de consentement de déconnexion si l’une des conditions suivantes est détectée :

* Les paramètres `id_token_hint` et `logout_hint` ne sont pas fournis.
* La demande de jeton d’ID `sid` ne correspond pas à la session du navigateur dans la demande.
* La valeur du paramètre `logout_hint` ne correspond pas aux données de la session en cours.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/fr-ca/cdy7uua7fh8z/5Sycg1aMJ1CLZwJj19Omv4/9677dc3b3549f9ebe7dee51aba3029c7/Logout_-_French.png" alt="null" />
</Frame>

Si l’utilisateur confirme la demande de déconnexion, Auth0 poursuit le flux de déconnexion.

### Désactiver l’invite de consentement à la déconnexion

Vous pouvez désactiver l’invite de consentement à la déconnexion. Si vous le faites, Auth0 ne tente pas de détecter un comportement anormal et accepte automatiquement les demandes de déconnexion.

Pour désactiver l’invite de consentement de déconnexion dans le Dashboard :

1. Accédez à [Dashboard > Paramètres > Avancés](https://manage.auth0.com/#/tenant/advanced).
2. Désactivez la bascule **Afficher la confirmation de l’utilisateur final de déconnexion initiée par RP**.

   <Frame>
     <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/fr-ca/cdy7uua7fh8z/37K4hLjhSBMGvdGP9OEP7W/d3761ebf29cab3aa184361df9a914735/Login_and_Logout_-_French.png" alt="null" />
   </Frame>

## En savoir plus

* [Déconnecter l’utilisateur de l’application](/docs/fr-ca/authenticate/login/logout/log-users-out-of-applications)
* [Déconnecter des utilisateurs des fournisseurs d’identité](/docs/fr-ca/authenticate/login/logout/log-users-out-of-idps)
* [Déconnecter des utilisateurs des fournisseurs d’identité SAML](/docs/fr-ca/authenticate/login/logout/log-users-out-of-saml-idps)
* [Rediriger les utilisateurs avec une déconnexion alternative](/docs/fr-ca/authenticate/login/logout/redirect-users-after-logout)
