> ## 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 configurer votre application pour l’accès M2M à l’aide de l’Auth0 Dashboard et de la Management API.

# Configurer votre application pour l’accès M2M

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

export const codeExample1 = `curl --request POST \\
  --url 'https://{yourDomain}/api/v2/client-grants' \\
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' \\
  --header 'content-type: application/json' \\
  --data '{
    "client_id": "CLIENT_ID",
    "audience": "API_IDENTIFIER",
    "scope": [
        "scope1",
        "scope2"
    ],
    "organization_usage": "ORG_USAGE",
    "allow_any_organization": false
  }'
`;

export const codeExample2 = `curl --request PATCH \\
  --url 'https://{yourDomain}/api/v2/client-grants/CLIENT_GRANT_ID' \\
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' \\
  --header 'content-type: application/json' \\
  --data '{
    "organization_usage": "ORG_USAGE",
    "allow_any_organization": false
  }'
`;

export const codeExample3 = `curl -X PATCH --location "https://{yourDomain}/api/v2/clients/{CLIENT_ID}" \\
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' \\
  --header 'content-type: application/json' \\
  --data '{
    "default_organization": {
    "organization_id": "ORGANIZATION_ID",
    "flows": ["client_credentials"]
    }
}'
`;

Auth0 vous permet d’autoriser l’accès machine à machine (M2M) à vos applications. Une fois que vous [créez une application dans Auth0](/docs/fr-ca/get-started/auth0-overview/create-applications), configurez-la pour l’accès machine à machine :

1. [Définir le comportement de l’organisation](#define-organization-behavior) pour chaque API auquel vous devez accéder.
2. Si l’application doit seulement accéder à certaines organisations, c’est-à-dire pas à toutes, [Configurer l’accès machine à machine](/docs/fr-ca/manage-users/organizations/organizations-for-m2m-applications/manage-m2m-access#authorize-m2m-access) pour chaque API auquel vous devez accéder pour ces organisations précises.

<div id="define-organization-behavior">
  ## Définir le comportement de l’organisation
</div>

Vous pouvez configurer la manière dont votre application utilise Organizations pendant le Client Credentials Flow pour chaque API, par exemple si l’application doit utiliser une organisation ou si elle peut accéder à n’importe quelle organisation, ou uniquement à celles auxquelles elle est explicitement associée.

Le tableau suivant explique les champs servant à définir le comportement de l’organisation pour l’accès M2M :

<div id="define-organization-behavior-table">
  ### Tableau du comportement de l’organisation
</div>

| Champ                                                               | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Mappage API                                                                                                                                                                                                                                |
| ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Prise en charge des organisations                                   | Détermine comment cette application peut utiliser des organisations lorsqu’elle accède au moyen du Client Credentials Flow.<br /><br />Les options comprennent : <ul> <li>**Aucune :** L’application *ne doit pas* utiliser d’organisations. Il s’agit de la valeur par défaut.</li> <li>**Facultatif :** L’application *peut décider* d’utiliser ou non une organisation.</li> <li>**Obligatoire :** L’application *doit* utiliser une organisation.</li> </ul>                                                                          | Prise en charge des organisations correspond à `organization_usage`.<br /><br />Options : <ul> <li>**Aucune** correspond à `deny`</li> <li>**Facultatif** correspond à `allow`</li> <li>**Obligatoire** correspond à `required`</li> </ul> |
| Autoriser l’accès machine à machine à n’importe quelle organisation | Détermine si cette application peut accéder à n’importe quelle organisation ou si elle est limitée à un ensemble d’organisations explicitement associées lorsqu’elle utilise le Client Credentials Flow. Par défaut, ce comportement n’est pas autorisé.<br /><br />**Avertissement :** Activer l’accès machine à machine à n’importe quelle organisation permet à l’application d’accéder à toute organisation sans y être explicitement associée. Cette option ne devrait être activée que pour des applications internes de confiance. | Autoriser l’accès machine à machine à n’importe quelle organisation correspond à `allow_any_organization`.<br /><br />Options : <ul> <li>Coché correspond à `true`</li> <li>Décoché correspond à `false`</li> </ul>                        |

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  L’option **Autoriser l’accès machine à machine à n’importe quelle organisation** n’est pas offerte pour les [applications tierces](/docs/fr-ca/get-started/applications/third-party-applications). Les applications tierces exigent toujours une autorisation client explicite pour chaque organisation. Pour en savoir plus, consultez [Activer l’accès d’une application tierce à une organisation](/docs/fr-ca/manage-users/organizations/configure-organizations/enable-third-party-application-access).
</Callout>

<div id="define-organization-behavior-for-an-application">
  ### Définir le comportement de l’organisation pour une application
</div>

Pour définir le comportement de l’organisation pour une application, utilisez l’[Auth0 Dashboard](https://manage.auth0.com/) ou la [Management API](https://auth0.com/docs/api/management/v2).

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour une application machine à machine, définissez le comportement de l’organisation dans l’Auth0 Dashboard :

    1. Accédez à **Auth0 Dashboard > Applications**, puis sélectionnez l’application pour laquelle vous voulez configurer Organizations.
    2. Sélectionnez l’onglet **APIs** et développez les détails de `client_grant` pour l’API à laquelle vous souhaitez configurer l’accès.
    3. Configurez les paramètres appropriés comme indiqué dans le [tableau du comportement de l’organisation](#define-organization-behavior-table).
    4. Sélectionnez **Save.**

    Sinon, s’il ne s’agit pas d’une application machine à machine :

    1. Accédez à **Auth0 Dashboard > APIs**, puis sélectionnez l’API pour laquelle vous voulez configurer l’accès à Organizations.
    2. Sélectionnez l’onglet **Machine-to-Machine Applications**. Il affiche toutes les applications, et pas seulement les applications machine à machine. Repérez votre application.
    3. Pour autoriser l’accès, sélectionnez la bascule de votre application. Ensuite, sélectionnez votre application pour afficher les détails de configuration.
    4. Configurez les paramètres appropriés comme indiqué dans le [tableau du comportement de l’organisation](#define-organization-behavior-table).
    5. Sélectionnez **Save**.
  </Tab>

  <Tab title="Management API">
    Vous pouvez aussi définir le comportement de l’organisation pour une application à l’aide de la Management API. L’objet `client_grant` contrôle l’accès de votre application à une API, et vous devez configurer le `client_grant` pour chaque API à laquelle votre application doit accéder. Pour configurer le `client_grant` pour l’accès M2M, utilisez les points de terminaison [Create client grant](https://auth0.com/docs/api/management/v2/client-grants/post-client-grants) ou [Update client grant](https://auth0.com/docs/api/management/v2/client-grants/patch-client-grants-by-id), ainsi que le [tableau du comportement de l’organisation](#define-organization-behavior-table), pour mettre à jour les paramètres appropriés.

    L’exemple de code suivant crée un objet `client_grant` avec un accès M2M :

    <AuthCodeBlock children={codeExample1} language="bash" />

    L’exemple de code suivant met à jour un objet `client_grant` avec un accès M2M :

    <AuthCodeBlock children={codeExample2} language="bash" />
  </Tab>
</Tabs>

<div id="set-default-organization">
  ## Définir l’organisation par défaut
</div>

Certains clients ne prennent pas en charge les champs non standards dans le [Client Credentials Flow](/docs/fr-ca/get-started/authentication-and-authorization-flow/client-credentials-flow). Ils ne peuvent donc pas envoyer le paramètre `organization` requis au point de terminaison `/oauth/token`. Pour ces clients, vous pouvez définir une organisation par défaut qui s’applique automatiquement à toute requête Client Credentials provenant de l’application lorsque `none` est spécifié et que la prise en charge des organisations est `required` par l’API.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  L’organisation par défaut s’applique lorsque `organization_usage=require` pour l’API (c.-à-d. l’audience cible).
</Callout>

Le tableau suivant décrit les champs permettant de définir une organisation par défaut pour l’accès machine-to-machine :

<div id="set-default-organization-table">
  ### Tableau de définition de l’organisation par défaut
</div>

| Champ                                                  | Description                                                                                              | mappage API                                                                                                                                                                                                                                                                                                                                                                                                |
| ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Organisation par défaut pour l’accès machine à machine | Définit l’organisation à appliquer aux requêtes Client Credentials qui ne contiennent pas d’organisation | Organisation par défaut pour l’accès machine à machine correspond à l’objet default\_organization avec les propriétés suivantes : <ul> <li>`organization_id` : l’ID de l’organisation à utiliser</li> <li> `flows` : le flux d’authentification à utiliser pour l’organisation par défaut.<br /><br />Ce paramètre est masqué dans l’UI et prend par défaut la valeur `["client_credentials"]` </li> </ul> |

<div id="set-default-organization-for-an-application">
  ### Définir l’organisation par défaut pour une application
</div>

Pour définir l’organisation par défaut pour une application, utilisez l’[Auth0 Dashboard](https://manage.auth0.com/) ou la [Management API](https://auth0.com/docs/api/management/v2).

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour activer une organisation par défaut pour une application dans l’Auth0 Dashboard :

    1. Accédez à **Auth0 Dashboard > Applications**, puis sélectionnez l’application que vous souhaitez configurer.
    2. Sélectionnez l’onglet **Organizations**.
    3. Configurez les paramètres appropriés comme expliqué dans le [tableau de définition de l’organisation par défaut](#set-default-organization-table).
    4. Sélectionnez **Save.**

    <Frame>
      <img src="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/29rhTFMnYDp7TbGS9S6b5J/19241fae86a5fa01a90eeb364e96b0ca/2025-07-18_15-49-47.png?fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=2d3f12fe717cf412728f15b870ca4068" alt="Auth0 Dashboard > Applications > sélectionner l’expérience de connexion" data-og-width="906" width="906" data-og-height="1162" height="1162" data-path="docs/images/cdy7uua7fh8z/29rhTFMnYDp7TbGS9S6b5J/19241fae86a5fa01a90eeb364e96b0ca/2025-07-18_15-49-47.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/29rhTFMnYDp7TbGS9S6b5J/19241fae86a5fa01a90eeb364e96b0ca/2025-07-18_15-49-47.png?w=280&fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=efaff7c2379b18b282da29f8d7250289 280w, https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/29rhTFMnYDp7TbGS9S6b5J/19241fae86a5fa01a90eeb364e96b0ca/2025-07-18_15-49-47.png?w=560&fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=8e805d1f1b34490cc112f7efb57e6e61 560w, https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/29rhTFMnYDp7TbGS9S6b5J/19241fae86a5fa01a90eeb364e96b0ca/2025-07-18_15-49-47.png?w=840&fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=e24e431bbefa45498e7dd8bcd280831f 840w, https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/29rhTFMnYDp7TbGS9S6b5J/19241fae86a5fa01a90eeb364e96b0ca/2025-07-18_15-49-47.png?w=1100&fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=da5e12d16505bb44572c34021c3c1845 1100w, https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/29rhTFMnYDp7TbGS9S6b5J/19241fae86a5fa01a90eeb364e96b0ca/2025-07-18_15-49-47.png?w=1650&fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=defb92951a5713e630995543f93a4e9a 1650w, https://mintcdn.com/translations/Dcx0M11uuptU53TX/docs/images/cdy7uua7fh8z/29rhTFMnYDp7TbGS9S6b5J/19241fae86a5fa01a90eeb364e96b0ca/2025-07-18_15-49-47.png?w=2500&fit=max&auto=format&n=Dcx0M11uuptU53TX&q=85&s=f9486a775f1afb39cf72e50e8901591c 2500w" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    Vous pouvez configurer l’organisation par défaut pour une application à l’aide des points de terminaison [Create a client](https://auth0.com/docs/api/management/v2/clients/post-clients) ou [Update a client](/docs/fr-ca/api/management/v2/clients/patch-clients-by-id). La seule valeur de flux actuellement prise en charge est `client_credentials`.

    L’exemple de code suivant met à jour un client pour lui attribuer une organisation par défaut :

    <AuthCodeBlock children={codeExample3} language="bash" />
  </Tab>
</Tabs>
