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

# Initiateurs de déconnexion par canal d’appui OIDC

> Découvrez le fonctionnement des initiateurs de déconnexion par canal d’appui OIDC et la manière de les configurer pour votre ou vos applications

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>;
};

Les initiateurs de déconnexion par canal d’appui OIDC vous permettent de déconnecter à distance les utilisateurs de leurs applications en fonction des événements de fin de session. Les initiateurs de déconnexion par canal d’appui OIDC fonctionnent à travers les protocoles, par exemple, une requête de déconnexion <Tooltip href="/docs/fr-ca/glossary?term=security-assertion-markup-language" tip="Security Assertion Markup Language (SAML)
Protocole normalisé permettant à deux parties d’échanger des informations d’authentification sans mot de passe." cta="Voir le glossaire">SAML</Tooltip> initiée par le fournisseur d’identité (<Tooltip href="/docs/fr-ca/glossary?term=idp" tip="Fournisseur d’identité (IdP)
Service de stockage et de gestion des identités numériques." cta="Voir le glossaire">IdP</Tooltip>), et ne sont pas touchés par les restrictions des témoins tiers.

Cette fonctionnalité est une extension de la spécification de canal d’appui OIDC standard. Vous pouvez la configurer pour qu’elle lance une demande de déconnexion via le canal d’appui OIDC pour des événements de fin de session déterminés, tels qu’un changement de mot de passe ou une expiration de session, ou pour tous les événements de fin de session.

Les administrateurs peuvent activer cette fonctionnalité pour des applications particulières à l’aide de Management API Auth0.

## Fonctionnement des initiateurs de déconnexion par canal d’appui OIDC

Les initiateurs lient une réponse de déconnexion par canal d’appui OIDC à un événement de fin de session. Ils capturent l’événement et l’utilisent pour déclencher un jeton de déconnexion OIDC dans toutes les applications associées à la session donnée.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Les initiateurs ne contrôlent pas la gestion de session de votre locataire, notamment les événements de fin de session.
</Callout>

Le diagramme suivant illustre le fonctionnement d’un initiateur de déconnexion par canal d’appui OIDC pour un événement de changement de mot de passe :

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/fr-ca/cdy7uua7fh8z/2GwtCTwecxYONxL1DbewxO/e3ceaf196490d36bb62a9a44f574a856/OIDC_Back-Channel_Logout_Initiators_Diagram.png" alt="" />
</Frame>

## Configuration des initiateurs de déconnexion par canal d’appui OIDC

Vous pouvez configurer les initiateurs de déconnexion par canal d’appui OIDC avec Management API.

### Management API

Vous pouvez configurer les initiateurs de déconnexion par canal d’appui OIDC pour une application avec Management API en utilisant le point de terminaison [Mettre à jour un client](https://auth0.com/docs/api/management/v2/clients/patch-clients-by-id).

1. Obtenez un [jeton d’accès à Management API](https://auth0.com/docs/secure/tokens/access-tokens/management-api-access-tokens) avec la permission `update:clients`.
2. Appelez le point de terminaison [Update a Client (Mettre à jour un client)](https://auth0.com/docs/api/management/v2/clients/patch-clients-by-id) avec les données de configuration appropriées dans la charge utile. Par exemple, pour déconnecter une application après un événement de modification de mot de passe, fournissez les éléments suivants :

export const codeExample1 = `   PATCH /api/v2/clients/{yourClientId}
{
  ...
  "oidc_logout": {
    "backchannel_logout_urls": ["https://example.com/cb"]
    "backchannel_logout_initiators": {
      "mode":"custom",
      "selected_initiators": ["rp-logout", "idp-logout", "password-changed"]
    }
  }
  ...
}
`;

<AuthCodeBlock children={codeExample1} language="text" lines />

#### Propriétés

L’objet `backchannel_logout_initiators` prend en charge les propriétés suivantes :

| Propriété             | Type   | Requis?                       | Description                                                 | Valeurs prises en charge                                                                                                           |
| --------------------- | ------ | ----------------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `mode`                | chaîne | Requis                        | Méthode de configuration pour l’activation des initiateurs. | `custom`, `all`                                                                                                                    |
| `selected_initiators` | array  | Requis si `mode` est `custom` | Liste des initiateurs à activer.                            | `rp-logout`, `idp-logout`, `password-changed`, `session-expired`, `session-revoked`, `account-deleted`, `email-identifier-changed` |

##### propriété mode

La propriété `mode` détermine la méthode de configuration pour activer les initiateurs.

Par défaut, elle est définie sur `custom`, ce qui vous permet de préciser les initiateurs que vous souhaitez activer. Si vous souhaitez que votre application se déconnecte à chaque fois que la sessionºIdP se termine, définissez-la sur `all`.

La propriété `mode` prend en charge les valeurs suivantes :

| Valeur   | Description                                                                     |
| -------- | ------------------------------------------------------------------------------- |
| `custom` | N’active que les initiateurs répertoriés dans le tableau `selected_initiators`. |
| `all`    | Active automatiquement tous les initiateurs présents et futurs.                 |

##### propriété selected\_initiators

La propriété `selected_initiators` contient la liste des initiateurs à activer pour l’application donnée.

La propriété `selected_initiators` prend en charge les valeurs suivantes :

| Value                      | Description                                                                          |
| -------------------------- | ------------------------------------------------------------------------------------ |
| `rp-logout`                | La demande a été initiée par une partie se fiant à la signature (RP, relying party). |
| `idp-logout`               | La demande a été initiée par un fournisseur d’identité externe (IdP).                |
| `password-changed`         | La demande a été initiée par un changement de mot de passe.                          |
| `session-expired`          | La demande a été initiée par l’expiration de la session.                             |
| `session-revoked`          | La demande a été initiée par la suppression d’une session.                           |
| `account-deleted`          | La demande a été initiée par la suppression d’un compte.                             |
| `email-identifier-changed` | La demande a été initiée par un changement d’identifiant de courriel.                |

#### Exemples

##### Inscrire une application à tous les initiateurs actuels et futurs

export const codeExample2 = `PATCH /api/v2/clients/{yourClientId}

{
  ...
  "oidc_logout": {
    "backchannel_logout_urls": ["https://example.com/cb"]
    "backchannel_logout_initiators": {
      "mode":"all"
    }
  }
  ...
}`;

<AuthCodeBlock children={codeExample2} language="json" />

##### Inscrire une application à un initiateur ayant changé de mot de passe uniquement (rp-logout et idp-logout sont requis)

export const codeExample3 = `PATCH /api/v2/clients/{yourClientId}

{
  ...
  "oidc_logout": {
    "backchannel_logout_urls": ["https://example.com/cb"]
    "backchannel_logout_initiators": {
      "mode":"custom",
      "selected_initiators": ["rp-logout", "idp-logout", "password-changed"]
    }
  }
  ...
}`;

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

##### Désinscrire de tous les initiateurs (rp-logout reste la valeur par défaut).

export const codeExample4 = `PATCH /api/v2/clients/{yourClientId}

{
  ...
  "oidc_logout": {
	  "backchannel_logout_urls": ["https://example.com/cb"]
  }
  ...
}`;

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

### Dashboard

La fonction de déconnexion par canal d’appui 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 peut être configurée en même temps que le reste des paramètres de votre application. Cette fonctionnalité s’active automatiquement dès qu’un URI de déconnexion par canal d’appui est fourni.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/fr-ca/cdy7uua7fh8z/vgN0wudP38zgRZNL59Mhy/8de2d7fd6fabe28b1f33f1f4337a057a/Backchannel_Logout_Settings.png" alt="Dashboard > Applications > Application Settings" />
</Frame>

#### Initiateurs sélectionnés uniquement

Seuls les initiateurs requis (`rp-logout` et `idp-logout`) seront activés par défaut. Tout initiateur supplémentaire, y compris ceux qui seront ajoutés à l’avenir, doit d’abord être sélectionné avant de pouvoir lancer une déconnexion à partir de votre application.

Sélectionnez cette option si vous souhaitez que votre application ne se déconnecte que pour les initiateurs que vous avez sélectionnés.

#### Tous les initiateurs pris en charge

Tous les initiateurs pris en charge, y compris ceux qui seront ajoutés à l’avenir, seront activés par défaut.

Sélectionnez cette option si vous souhaitez que votre application se déconnecte à chaque fois que la session IdP se termine.
