> ## 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 qu’un fournisseur d’identité social ou d’entreprise configuré renvoie des champs de profil et des permissions d’API.

# Ajouter des scopes/autorisations pour appeler les API d’un 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) + "*****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>;
};

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

Toutefois, si vous obtenez `Access Denied` en appelant l’API de l’IdP, c’est probablement parce que vous n’avez pas demandé les autorisations appropriées pour l’utilisateur lors de la connexion. 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 à demander à l’utilisateur, accédez à [Auth0 Dashboard > Authentication > Social](https://manage.auth0.com/#/connections/social), puis sélectionnez un fournisseur d’identité (IdP). Vous pouvez sélectionner les autorisations requises dans 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 d’autorisation
</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` lors de l’appel 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>
