> ## 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.

> Ajoutez des scopes OAuth supplémentaires à une connexion Auth0 pour permettre à un fournisseur d’identité social ou d’entreprise configuré de renvoyer des champs de profil et des autorisations d’API.

# Ajouter des scopes/des autorisations pour appeler les API du fournisseur d’identité

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

Une fois qu’un utilisateur est connecté, vous pouvez récupérer son profil utilisateur, puis l’`accessToken` associé pour effectuer une requête à l’API du <Tooltip tip="Fournisseur d’identité (IdP) : service qui stocke et gère les identités numériques." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Identity+Provider">fournisseur d’identité</Tooltip> (IdP), comme décrit dans [Effectuer une requête à l’API d’un fournisseur d’identité](/docs/fr-ca/authenticate/identity-providers/calling-an-external-idp-api).

Cependant, si vous recevez `Access Denied` lorsque vous effectuez une requête à l’API de l’IdP, c’est probablement parce que vous n’avez pas demandé les autorisations appropriées pour l’utilisateur au moment du login. Vous pouvez demander les autorisations appropriées de l’une des deux façons suivantes.

<div id="change-identity-provider-settings">
  ## Modifier les paramètres du fournisseur d’identité
</div>

Pour configurer les scopes/autorisations requis pour l’utilisateur, accédez à [Auth0 Dashboard > Authentification > Social](https://manage.auth0.com/#/connections/social), puis sélectionnez un IdP. Vous pouvez sélectionner les autorisations requises affichées à l’écran de configuration.

Par exemple, si vous cliquez sur la connexion **Google / Gmail**, vous pouvez configurer des autorisations propres à Google :

<Frame>
  <img src="https://mintcdn.com/translations/6GE5Z24GDCZehiJ9/docs/images/cdy7uua7fh8z/61ACa6hnMtO5aUjus0fCb7/31411373a18463f272107e1124445c60/dashboard-connections-social-create_google.png?fit=max&auto=format&n=6GE5Z24GDCZehiJ9&q=85&s=d363a82784f34b34db1e66c974a98fff" alt="Autorisations pour Google" width="904" height="655" data-path="docs/images/cdy7uua7fh8z/61ACa6hnMtO5aUjus0fCb7/31411373a18463f272107e1124445c60/dashboard-connections-social-create_google.png" />
</Frame>

<div id="pass-scopes-to-authorize-endpoint">
  ## Transmettre des scopes au point de terminaison Authorize
</div>

Vous pouvez aussi transmettre les scopes/autorisations que vous souhaitez demander sous forme de liste séparée par des virgules dans le paramètre `connection_scope` lorsque vous envoyez une requête au [point de terminaison authorize](https://auth0.com/docs/api/authentication#login). Par exemple, si vous souhaitez demander à Google les scopes `https://www.googleapis.com/auth/contacts.readonly` et `https://www.googleapis.com/auth/analytics`, vous pouvez les transmettre avec le paramètre `connection` pour vous assurer que l’utilisateur se connecte avec son compte Google :

export const codeExample = `https://{yourDomain}/authorize
  ?response_type=id_token
  &client_id={yourClientId}
  &redirect_uri={https://yourApp/callback}
  &scope=openid%20profile
  &connection=google-oauth2
  &connection_scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fanalytics%2Chttps%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcontacts.readonly
  &nonce=abc`;

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

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Veuillez noter que, dans l’exemple de requête ci-dessus, la valeur du paramètre `connection_scope` est codée dans l’URL. La valeur décodée transmise à Google est `https://www.googleapis.com/auth/analytics, https://www.googleapis.com/auth/contacts.readonly`
</Callout>
