> ## 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 l’effet du paramètre d’application conforme à OIDC sur le pipeline d’authentification.

# Adopter l’authentification conforme à 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) + "*****MASQUÉ*****";
          }
          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>;
};

Auth0 est un [fournisseur certifié OpenID Connect (OIDC)](http://openid.net/certification/). Dans le cadre des efforts d’Auth0 pour renforcer la sécurité et l’interopérabilité fondée sur des normes, nous déployons de nouvelles fonctionnalités exclusivement dans les flux d’authentification strictement conformes aux [spécifications OIDC](http://openid.net/specs/openid-connect-core-1_0.html).

Nous expliquerons les différences entre le pipeline conforme à OIDC et le pipeline hérité, et nous proposerons des pistes pour adapter vos applications existantes. Ces renseignements s’adressent aux développeurs et/ou aux administrateurs TI qui gèrent des intégrations Auth0 dans leurs applications à l’aide du [framework d’autorisation OAuth 2.0](/docs/fr-ca/authenticate/protocols/oauth). Cette information ne s’applique pas si vous utilisez <Tooltip tip="Security Assertion Markup Language (SAML) : protocole normalisé permettant à deux parties d’échanger des renseignements d’authentification sans mot de passe." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=SAML">SAML</Tooltip> ou WS-Federation. Tous les flux d’authentification sont décrits au moyen de requêtes HTTP plutôt qu’en fonction d’un langage ou de la mise en œuvre d’une bibliothèque en particulier.

Toutes les nouvelles fonctionnalités ciblent uniquement le pipeline conforme à OIDC, et toutes les versions héritées de l’Auth0 SDK sont dépréciées, ne reçoivent pas de mises à jour pour les nouvelles fonctionnalités ni pour les problèmes de sécurité non critiques, et finiront par être abandonnées. De plus, toute la documentation, les bibliothèques et les exemples à l’extérieur de ce guide s’appliquent uniquement au pipeline conforme à OIDC. C’est pourquoi nous recommandons fortement d’adopter le pipeline conforme à OIDC, même si vous n’avez pas besoin d’exploiter de nouvelles fonctionnalités ou capacités dans l’immédiat.

<div id="apply-the-oidc-conformant-pipeline">
  ## Appliquer le pipeline conforme à OIDC
</div>

Selon l’ancienneté de votre tenant, vous pourriez disposer de différentes options pour appliquer le pipeline conforme à OIDC.

<div id="new-tenants">
  ### Nouveaux tenants
</div>

Si vous créez un nouveau tenant à l’aide du <Tooltip tip="Auth0 Dashboard : produit principal d’Auth0 pour configurer vos services." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip>, le pipeline conforme à OIDC est utilisé par défaut. Il s’agit du paramètre par défaut du Dashboard depuis le début de 2019.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Il est toutefois possible que vous ayez désactivé manuellement le paramètre OIDC Conformant. Dans ce cas, vous devriez suivre nos instructions pour les anciens tenants.
</Callout>

<div id="older-tenants">
  ### Tenants plus anciens
</div>

Si vous souhaitez appliquer en même temps, pour une application donnée, toutes les modifications décrites dans ce guide afin de voir tous les changements non rétrocompatibles pendant la configuration plutôt qu’à l’exécution, vous devez :

1. Accédez à [Dashboard > Applications > Applications](https://manage.auth0.com/#/applications), puis sélectionnez l’application souhaitée.
2. Faites défiler jusqu’à **Advanced Settings**, puis ouvrez l’onglet **OAuth**.
3. Activez la bascule **OIDC Conformant**, puis cliquez sur **Save Changes**.

Si vous souhaitez utiliser le pipeline conforme à OIDC au cas par cas, pour chaque requête d’authentification, et que votre application doit envoyer une requête à une API avec un <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=JWT">JWT</Tooltip> <Tooltip tip="JSON Web Token (JWT) : format standard de jeton ID (et souvent de jeton d’accès) utilisé pour représenter de façon sécurisée des revendications entre deux parties." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=access+token">jeton d’accès</Tooltip>, lancez la requête vers le point de terminaison [`/social`](https://auth0.com/docs/api/authentication#social) avec un paramètre `audience`.

Si vous souhaitez utiliser le pipeline conforme à OIDC au cas par cas, pour chaque requête d’authentification, et que votre application n’a pas besoin d’envoyer une requête à une API, utilisez le paramètre `audience` suivant :

export const codeExample = `https://{yourDomain}/userinfo`;

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

<div id="differences">
  ## Différences
</div>

L’activation du pipeline conforme à OIDC entraîne les changements suivants dans le pipeline hérité.

<div id="apis">
  ### APIs
</div>

Les applications et les API (ressources) doivent être définies comme des entités Auth0 distinctes. Pour en savoir plus, consultez [OIDC-Conformant Adoption: APIs](/docs/fr-ca/authenticate/login/oidc-conformant-authentication/oidc-adoption-apis).

<div id="access-tokens">
  ### Jetons d’accès
</div>

* Les API doivent être sécurisées à l’aide de jetons d’accès plutôt qu’avec des <Tooltip tip="Jeton ID : justificatif destiné au client lui-même plutôt qu’à l’accès à une ressource." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=ID+tokens">jetons ID</Tooltip>. Pour en savoir plus sur les différences, consultez [Jetons](/docs/fr-ca/secure/tokens).
* Un ensemble défini de claims standard sur les utilisateurs peut être renvoyé dans les jetons ID ou dans la réponse de `/userinfo`.
* Les claims personnalisés doivent respecter un format avec espace de noms. Pour en savoir plus, consultez [Créer des claims personnalisés avec espace de noms](/docs/fr-ca/secure/tokens/json-web-tokens/create-custom-claims).
* Les réponses de `/userinfo` seront conformes à la spécification OIDC, à l’instar du contenu des jetons ID
* Les scopes peuvent servir à demander soit des claims standard, soit des permissions d’API personnalisée.

Pour en savoir plus, consultez [Adoption conforme à OIDC : jetons d’accès](/docs/fr-ca/authenticate/login/oidc-conformant-authentication/oidc-adoption-access-tokens).

<div id="authorization-flows">
  ### Flux d’autorisation
</div>

* [Flux du code d’autorisation](/docs/fr-ca/authenticate/login/oidc-conformant-authentication/oidc-adoption-auth-code-flow) : Il existe des différences structurelles dans la requête d’authentification, la réponse d’authentification, la requête d’échange de code, la réponse d’échange de code, la structure du jeton ID et la structure du jeton d’accès.
* [Flux d’identifiants du client](/docs/fr-ca/authenticate/login/oidc-conformant-authentication/oidc-adoption-client-credentials-flow) : Nouveau flux activé, qui permet aux applications de s’authentifier elles-mêmes (plutôt qu’au nom d’un utilisateur) pour obtenir un accès à une API de façon programmatique et sécurisée.
* [Flux implicite](/docs/fr-ca/authenticate/login/oidc-conformant-authentication/oidc-adoption-implicit-flow) : Il existe des différences structurelles dans la requête d’authentification, la réponse d’authentification, la structure du jeton ID et la structure du jeton d’accès. Plus précisément :

  * `response_type=token` renvoie uniquement un jeton d’accès. Pour obtenir un jeton ID, utilisez `response_type=id_token` ou `response_type=token id_token`.
  * Les jetons ID seront signés de façon asymétrique à l’aide de RS256.
  * Les requêtes d’authentification effectuées sans paramètre nonce seront rejetées. Pour en savoir plus, consultez [Mitigate Replay Attacks When Using Implicit Flow](/docs/fr-ca/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post/mitigate-replay-attacks-when-using-the-implicit-flow).
  * Les jetons d’actualisation ne seront plus renvoyés lors de l’utilisation du flux implicite pour l’authentification.
* [Flux de mot de passe du propriétaire de la ressource](/docs/fr-ca/authenticate/login/oidc-conformant-authentication/oidc-adoption-rop-flow) : Il existe des différences structurelles dans la requête d’authentification, la réponse d’authentification, la structure du jeton ID et la structure du jeton d’accès. Plus précisément :

  * le [point de terminaison hérité du propriétaire de la ressource](https://auth0.com/docs/api/authentication#database-ad-ldap-active-) est désactivé, ce qui désactive également l’authentification sans mot de passe pour la connexion intégrée à partir de ce point de terminaison. Pour [implémenter Passwordless avec connexion intégrée](/docs/fr-ca/authenticate/login/universal-vs-embedded-login), vous devez utiliser l’API Embedded Passwordless ou nos SDKs, selon le type d’application.
  * le paramètre `device` est maintenant considéré comme invalide lors d’une demande de jeton d’actualisation au moyen du scope `offline_access`.

<div id="delegation">
  ### Delegation
</div>

* **Obsolète** : point de terminaison [`/delegation`](https://auth0.com/docs/api/authentication#delegation), sauf lorsqu’il est utilisé pour obtenir des jetons d’API tiers.
* Les applications conformes à OIDC ne peuvent être ni la source ni la cible de requêtes de délégation.

Pour en savoir plus, consultez [Adoption de la conformité à OIDC : Delegation](/docs/fr-ca/authenticate/login/oidc-conformant-authentication/oidc-adoption-delegation).

<div id="endpoints">
  ### Points de terminaison
</div>

* **Obsolète** : point de terminaison `/tokeninfo`
* **Désactivé** : le point de terminaison [`/oauth/access_token`](https://auth0.com/docs/api/authentication#post-oauth-access_token) (utilisé pour l’authentification sociale à partir d’applications mobiles natives).
* **Obsolète** : point de terminaison `/ssodata`
* **Obsolète** : point de terminaison [`/delegation`](https://auth0.com/docs/api/authentication#delegation), sauf lorsqu’il est utilisé pour obtenir des jetons d’API tierces.

<div id="refresh-tokens">
  ### Jetons d’actualisation
</div>

* <Tooltip tip="Refresh Token : jeton utilisé pour obtenir un nouveau jeton d’accès sans obliger les utilisateurs à se connecter à nouveau." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Refresh+tokens">Les jetons d’actualisation</Tooltip> ne seront plus retournés lors de l’utilisation du Flux implicite pour l’authentification.
* Les jetons d’actualisation peuvent être utilisés pour les applications confidentielles, mais la <Tooltip tip="Refresh Token Rotation : stratégie consistant à remplacer fréquemment les jetons d’actualisation afin de réduire les vulnérabilités. Avec la rotation des jetons d’actualisation, chaque fois que votre application échange un jeton d’actualisation pour obtenir un nouveau jeton d’accès, Auth0 renvoie également un nouveau jeton d’actualisation." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=refresh+token+rotation">rotation des jetons d’actualisation</Tooltip> peut renforcer la sécurité dans la plupart des flux et devrait toujours être utilisée pour les applications publiques avec le Flux de code d’autorisation avec PKCE. Pour en savoir plus sur les applications confidentielles, consultez [Applications confidentielles et publiques](/docs/fr-ca/get-started/applications/confidential-and-public-applications). Pour en savoir plus sur la rotation des jetons d’actualisation, consultez [Refresh Token Rotation](/docs/fr-ca/secure/tokens/refresh-tokens/refresh-token-rotation).
* Pour obtenir de nouveaux jetons, vous devez utiliser le point de terminaison `/oauth/token`.
* Le paramètre `device` n’est plus nécessaire pour demander un jeton d’actualisation à l’aide de la portée `offline_access` dans les requêtes d’authentification.

Pour en savoir plus, consultez [Adoption de la conformité à OIDC : jetons d’actualisation](/docs/fr-ca/authenticate/login/oidc-conformant-authentication/oidc-adoption-refresh-tokens).

<div id="single-sign-on-sso">
  ### Authentification unique (SSO)
</div>

* Le <Tooltip tip="Single Sign-On (SSO) : service qui, une fois qu’un utilisateur s’est connecté à une application, le connecte automatiquement à d’autres applications." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=SSO">SSO</Tooltip> ne peut être utilisé qu’à partir des pages de connexion Auth0, ce qui signifie que vous devez utiliser <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">Universal Login</Tooltip>.
* Pour déterminer si les utilisateurs sont connectés via SSO, vous devez utiliser l’authentification silencieuse. Pour en savoir plus, consultez [Configurer l’authentification silencieuse](/docs/fr-ca/authenticate/login/configure-silent-authentication).
* **Obsolète** : le point de terminaison `/ssodata` et la méthode `getSSOData()` de `Lock/auth0.js`.

Pour en savoir plus, consultez [Adoption conforme à OIDC : authentification unique](/docs/fr-ca/authenticate/login/oidc-conformant-authentication/oidc-adoption-sso).

<div id="additional-features">
  ### Fonctionnalités supplémentaires
</div>

* Créez des applications tierces pour vos API et affichez des boîtes de dialogue de consentement lors de l’autorisation. Pour en savoir plus, consultez [User Consent and Third-Party Applications](/docs/fr-ca/get-started/applications/third-party-applications/user-consent-and-third-party-applications).
* Restreignez les renseignements du profil utilisateur fournis aux applications lors de l’authentification. Pour en savoir plus, consultez [Profils utilisateur](/docs/fr-ca/manage-users/user-accounts/user-profiles/user-profile-structure).
* Enregistrez dynamiquement des applications. Pour en savoir plus, consultez [Dynamic Client Registration](/docs/fr-ca/get-started/applications/dynamic-client-registration).
* [Organizations](/docs/fr-ca/manage-users/organizations) et les fonctionnalités qui s’y rapportent deviennent disponibles.
