> ## 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 le pipeline conforme à OIDC affecte le flux Resource Owner Password (ROP).

# Flux Resource Owner Password avec 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>;
};

Le [flux du mot de passe du propriétaire de la ressource](/fr-CA/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow) (parfois appelé <Tooltip tip="Propriétaire de la ressource : entité (comme un utilisateur ou une application) capable d’accorder l’accès à une ressource protégée." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Resource+Owner">propriétaire de la ressource</Tooltip> Password Grant ou ROPG) est utilisé par des applications hautement fiables pour assurer une authentification active. Contrairement au code d’autorisation et aux octrois implicites, ce mécanisme d’authentification ne redirige pas les utilisateurs vers Auth0. Il authentifie les utilisateurs au moyen d’une seule requête, en échangeant leurs identifiants et leur mot de passe contre un jeton.

Le pipeline conforme à OIDC a une incidence sur le flux du mot de passe du propriétaire de la ressource dans les domaines suivants :

* Requête d’authentification
* Réponse d’authentification
* Structure du <Tooltip tip="jeton d’identité : justificatif destiné à l’application cliente elle-même, plutôt qu’à l’accès à une ressource." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=ID+token">jeton d’identité</Tooltip>
* Structure du <Tooltip tip="Jeton d’accès : justificatif d’autorisation, sous la forme d’une chaîne opaque ou d’un JWT, utilisé pour accéder à une API." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Access+token">Jeton d’accès</Tooltip>

<div id="authentication-request">
  ## Requête d’authentification
</div>

<div id="legacy">
  ### Version héritée
</div>

```json lines theme={null}
POST /oauth/ro HTTP 1.1
Content-Type: application/json
{
  "grant_type": "password",
  "client_id": "123",
  "username": "alice",
  "password": "A3ddj3w",
  "connection": "my-database-connection",
  "scope": "openid email favorite_color offline_access",
  "device": "my-device-name"
}
```

Le paramètre `device` n’est requis que si vous demandez un <Tooltip tip="Jeton d’actualisation : jeton utilisé pour obtenir un nouveau Jeton d’accès sans obliger les utilisateurs à se reconnecter." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=refresh+token">jeton d’actualisation</Tooltip> en transmettant le scope `offline_access`.

<div id="oidc-conformant">
  ### Conforme à OIDC
</div>

```json lines theme={null}
POST /oauth/token HTTP 1.1
Content-Type: application/x-www-form-urlencoded
grant_type=http%3A%2F%2Fauth0.com%2Foauth%2Fgrant-type%2Fpassword-realm&client_id=123&username=alice&password=A3ddj3w&realm=my-database-connection&scope=openid+email+offline_access&audience=https%3A%2F%2Fapi.example.com
```

* Le point de terminaison pour effectuer des échanges d’identifiants est `/oauth/token`.
* Le type d’autorisation propre à Auth0 sert à authentifier les utilisateurs au moyen d’une connexion spécifique (`realm`). Le type d’autorisation par mot de passe OIDC standard est également pris en charge, mais il n’accepte pas les paramètres propres à Auth0, comme `realm`.
* `favorite_color` n’est plus un scope valide.
* Le paramètre `device` a été supprimé.
* Le paramètre `audience` est facultatif.

<div id="authentication-response">
  ## Réponse d’authentification
</div>

<div id="legacy">
  ### Version héritée
</div>

```json lines theme={null}
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{
    "access_token": "SlAV32hkKG",
    "token_type": "Bearer",
    "refresh_token": "8xLOxBtZp8",
    "expires_in": 3600,
    "id_token": "eyJ..."
}
```

* Le jeton d’accès renvoyé n’est valide que pour appeler le point de terminaison [`/userinfo`](https://auth0.com/docs/api/authentication#get-user-info).
* Un Jeton d’actualisation n’est renvoyé que si un paramètre `device` a été transmis et que le scope `offline_access` a été demandé.

<div id="oidc-conformant">
  ### Conforme à OIDC
</div>

```json lines theme={null}
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{
    "access_token": "eyJ...",
    "token_type": "Bearer",
    "refresh_token": "8xLOxBtZp8",
    "expires_in": 3600,
    "id_token": "eyJ..."
}
```

* Le jeton d’accès renvoyé est valide pour appeler le point de terminaison `/userinfo` (à condition que l’API spécifiée par le paramètre `audience` utilise `RS256` comme [algorithme de signature](/fr-CA/docs/get-started/applications/signing-algorithms)) ainsi que, au besoin, le <Tooltip tip="Serveur de ressources : serveur hébergeant des ressources protégées. Les serveurs de ressources acceptent les requêtes de ressources protégées et y répondent." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=resource+server">serveur de ressources</Tooltip> spécifié par le paramètre `audience`.
* Le jeton d’identité sera obligatoirement signé avec `RS256` s’il est demandé par une application publique. Pour en savoir plus, consultez [Applications confidentielles et publiques](/fr-CA/docs/get-started/applications/confidential-and-public-applications).
* Un jeton d’actualisation sera renvoyé uniquement si le scope `offline_access` a été accordé.

<div id="id-token-structure">
  ## Structure de l’ID Token
</div>

### version héritée

export const codeExample1 = `{
    "sub": "auth0|alice",
    "iss": "https://{yourDomain}/",
    "aud": "123",
    "exp": 1482809609,
    "iat": 1482773609,
    "email": "alice@example.com",
    "email_verified": true,
    "favorite_color": "blue"
}`;

<AuthCodeBlock children={codeExample1} language="json" filename="JSON" />

<div id="oidc-conformant">
  ### Conforme à OIDC
</div>

export const codeExample2 = `{
    "sub": "auth0|alice",
    "iss": "https://{yourDomain}/",
    "aud": "123",
    "exp": 1482809609,
    "iat": 1482773609,
    "email": "alice@example.com",
    "email_verified": true,
    "https://app.example.com/favorite_color": "blue"
}`;

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

* Le jeton d’identité sera automatiquement signé avec `RS256` s’il est demandé par une application publique.
* La claim `favorite_color` doit être associée à un espace de noms et ajoutée au moyen d’une Rule. Pour en savoir plus, consultez [Créer des claims personnalisées avec un espace de noms](/fr-CA/docs/secure/tokens/json-web-tokens/create-custom-claims).

<div id="access-token-structure-optional">
  ## Structure du jeton d’accès (facultative)
</div>

<div id="legacy">
  ### Version héritée
</div>

```json JSON lines theme={null}
SlAV32hkKG
```

Le jeton d’accès renvoyé est opaque et n’est valide que pour appeler le point de terminaison `/userinfo`.

<div id="oidc-conformant">
  ### Conforme à OIDC
</div>

export const codeExample3 = `{
    "sub": "auth0|alice",
    "iss": "https://{yourDomain}/",
    "aud": [
        "https://api.example.com",
        "https://{yourDomain}/userinfo"
    ],
    "azp": "123",
    "exp": 1482816809,
    "iat": 1482809609,
    "scope": "openid email"
}`;

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

* Le jeton d’accès renvoyé est un <Tooltip tip="JSON Web Token (JWT) : format standard de l’ID Token (et souvent du jeton d’accès) utilisé pour représenter des claims de façon sécurisée entre deux parties." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=JWT">JWT</Tooltip> valide pour appeler le point de terminaison `/userinfo` (à condition que l’API spécifiée par le paramètre `audience` utilise `RS256` comme <Tooltip tip="Algorithme de signature : algorithme utilisé pour signer numériquement des jetons afin de garantir qu’ils n’ont pas été altérés." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=signing+algorithm">algorithme de signature</Tooltip>), ainsi que le serveur de ressources spécifié par le paramètre `audience`.
* Notez qu’un jeton d’accès opaque pourrait tout de même être renvoyé si `/userinfo` est la seule <Tooltip tip="Audience : identifiant unique de l’audience d’un jeton émis. Appelée aud dans un jeton, sa valeur contient l’ID d’une application (ID client) pour un ID Token ou d’une API (identifiant d’API) pour un jeton d’accès." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=audience">audience</Tooltip> spécifiée.

<div id="standard-password-grant-requests">
  ## Requêtes standard d’octroi par mot de passe
</div>

L’octroi Auth0 par mot de passe avec `realm` n’est pas défini par la norme OIDC, mais il est proposé comme solution de rechange à l’ancien point de terminaison du propriétaire de la ressource, puisqu’il prend en charge le paramètre `realm` propre à Auth0. Le [flux OIDC standard est également pris en charge](/fr-CA/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow) lors de l’utilisation de l’authentification OIDC.

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

* [Jetons d’accès avec OIDC](/fr-CA/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-access-tokens)
* [API externes avec OIDC](/fr-CA/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-apis)
* [Flux de code d’autorisation avec OIDC](/fr-CA/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-auth-code-flow)
* [Flux d’identification du client avec OIDC](/fr-CA/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-client-credentials-flow)
* [Flux implicite avec OIDC](/fr-CA/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-implicit-flow)
* [Jetons d’actualisation avec OIDC](/fr-CA/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-refresh-tokens)
