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

# Configurer l’accès M2M avec les organisations Auth0

> Autorisez, révoquez et auditez l’accès machine à machine aux organisations Auth0 au moyen d’associations d’autorisations de client, dans le Dashboard ou par l’intermédiaire de la Management API.

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 codeExampleAuthorize = `curl -X POST --location "https://{yourDomain}/api/v2/organizations/{ORG_id}/client-grants" \\
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' \\
  --header 'content-type: application/json' \\
  --data '{
    "grant_id": "GRANT_ID"
  }'
`;

export const codeExampleAudit1 = `curl -X GET --location "https://{yourDomain}/api/v2/organizations/{ORG_id}/client-grants/" \\
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN'`;
export const codeExampleAudit2 = `curl -X GET --location "https://{yourDomain}/api/v2/clients?q=client_grant.organization_id%3Aorganization_id" \\
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN'`;
export const codeExampleAudit3 = `curl -X GET --location "https://{yourDomain}/api/v2/client-grants?allow_any_organization=true" \\
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN'`;
export const codeExampleAudit4 = `curl -X GET --location "https://{yourDomain}/api/v2/clients?q=client_grant.allow_any_organization%3Atrue" \\
  --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN'`;

L’accès de machine à machine pour les Organizations vous permet de définir l’Auth0 Organization à laquelle une application donnée peut accéder pour chaque API au moyen du Client Credentials Flow.

<div id="authorize-m2m-access">
  ## Autoriser l’accès M2M
</div>

Pour autoriser l’accès machine à machine d’une application, vous devez lui permettre d’utiliser une Organization avec une API donnée. Pour ce faire, associez l’autorisation de client de l’application à l’API correspondante et à l’Organization. Une fois cette association établie, l’application peut utiliser l’Organization lorsqu’elle demande des jetons pour l’API et les scopes définis dans l’autorisation de client. Définissez cette association pour chaque API à laquelle l’application doit accéder au sein de l’Organization.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Ce flux est pris en charge pour les [applications tierces](/docs/fr-ca/get-started/applications/third-party-applications). Les applications tierces ne peuvent pas utiliser `allow_any_organization`; vous devez donc autoriser explicitement chaque Organization en suivant les étapes ci-dessous.
</Callout>

Vous pouvez autoriser l’accès M2M d’une application au moyen de l’[Auth0 Dashboard](https://manage.auth0.com/) ou de la [Management API](https://auth0.com/docs/api/management/v2).

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour associer l’autorisation de client d’une application à une Organization au moyen de l’Auth0 Dashboard :

    1. Accédez à [**Organizations**](https://manage.auth0.com/dashboard/*/organizations/list), puis sélectionnez l’Organization à associer.
    2. Sélectionnez l’onglet **Machine-to-Machine Access**.
    3. Sélectionnez **Add Access.**
    4. Sélectionnez l’application à associer à l’Organization.
    5. Sélectionnez une API.
    6. Sélectionnez **Save**.

    <Frame>
      <img src="https://mintcdn.com/translations/c0RQ9V0YAcT0-8l5/docs/images/cdy7uua7fh8z/7AyE87kh1f6Zt3HSs1relI/36b800894175e151c7fe5f2dca6a2100/Acme_Bot_-_travel0_api_-_config_-_English.png?fit=max&auto=format&n=c0RQ9V0YAcT0-8l5&q=85&s=e97bfcbaf6eead771c73ffc76beddefc" alt="Auth0 Dashboard affichant la configuration de l’accès M2M pour une application associée à une Organization et à une API" width="1035" height="809" data-path="docs/images/cdy7uua7fh8z/7AyE87kh1f6Zt3HSs1relI/36b800894175e151c7fe5f2dca6a2100/Acme_Bot_-_travel0_api_-_config_-_English.png" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    Associez les autorisations de client d’une application à une Organization au moyen du point de terminaison [Associate client grant to organization](https://auth0.com/docs/api/management/v2/organizations/create-organization-client-grants) :

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

<div id="revoke-m2m-access">
  ## Révoquer l’accès M2M
</div>

Pour révoquer l’accès M2M ou retirer à votre application l’accès à une Organization, vous devez supprimer l’association entre ses autorisations de client et l’Organization. Une fois cette association supprimée, l’application n’est plus autorisée à utiliser l’Organization lorsqu’elle demande de nouveaux jetons pour l’API définie dans l’autorisation de client. La révocation de l’accès M2M fonctionne de la même manière pour les [applications tierces](/docs/fr-ca/get-started/applications/third-party-applications).

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  La révocation de l’accès M2M n’a aucune incidence sur les applications qui ont obtenu l’accès à une Organization. Pour en savoir plus, consultez [Définir le comportement de l’Organization](/docs/fr-ca/manage-users/organizations/organizations-for-m2m-applications/configure-your-application-for-m2m-access#define-organization-behavior).
</Callout>

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour supprimer, dans l’[Auth0 Dashboard](https://manage.auth0.com/), l’association entre l’autorisation de client d’une application et une Organization :

    1. Accédez à [**Organizations**](https://manage.auth0.com/dashboard/*/organizations/list) et choisissez l’Organization dont vous souhaitez supprimer l’association.
    2. Sélectionnez l’onglet **Accès machine à machine**.
    3. Choisissez une application.
    4. Décochez la case à côté des API que vous souhaitez dissocier de l’Organization.
    5. Sélectionnez **Enregistrer**.

    <Frame>
      <img src="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5MFv5NAoBDswloVweCVU1D/9057b94d5c5fd35e25afc7170ac645f3/Acme_Bot_-_Travel_Api_-_English.png?fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=9fd6640bd9c277a18fb0a519afeaaee5" alt="Auth0 Dashboard affichant la vue de révocation de l’accès M2M permettant de supprimer l’autorisation de client d’une application d’une organization" width="1052" height="417" data-path="docs/images/cdy7uua7fh8z/5MFv5NAoBDswloVweCVU1D/9057b94d5c5fd35e25afc7170ac645f3/Acme_Bot_-_Travel_Api_-_English.png" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    Supprimez l’association entre l’autorisation de client d’une application et une Organization au moyen du point de terminaison [Dissocier les autorisations de client des organizations](https://auth0.com/docs/api/management/v2/organizations/delete-client-grants-by-grant-id) :

    ```bash lines theme={null}
    curl -X DELETE --location "https://{yourDomain}/api/v2/organizations/{ORG_id}/client-grants/{GRANT_ID}" \
      --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' ;
    ```
  </Tab>
</Tabs>

<div id="audit-m2m-access">
  ## Auditer l’accès M2M
</div>

L’accès machine à machine aux Organizations peut être accordé en associant directement une autorisation de client à une Organization ou en autorisant l’accès à n’importe quelle Organization dans les paramètres de l’autorisation de client. Ces deux scénarios peuvent être audités dans le <Tooltip tip="Auth0 Dashboard : le principal produit Auth0 pour configurer vos services." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> ou au moyen de la <Tooltip tip="Management API : un produit permettant aux clients d’effectuer des tâches administratives." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Management+API">Management API</Tooltip>, où vous pouvez consulter ou récupérer la liste des autorisations de client associées à une Organization pour une application. Pour en savoir plus sur le fonctionnement des permissions d’accès M2M aux Organizations, consultez [Configurer votre application pour l’accès M2M](/docs/fr-ca/manage-users/organizations/organizations-for-m2m-applications/configure-your-application-for-m2m-access) et [Autoriser l’accès M2M](#authorize-m2m-access). L’audit fonctionne de la même façon pour les [applications tierces](/docs/fr-ca/get-started/applications/third-party-applications).

<div id="access-granted-via-direct-association">
  ### Accès accordé par association directe
</div>

Utilisez l’[Auth0 Dashboard](https://manage.auth0.com/) et la [Management API](https://auth0.com/docs/api/management/v2) pour auditer l’accès M2M des autorisations de client directement associées à une Organization.

<Tabs>
  <Tab title="Auth0 Dashboard">
    Pour afficher dans l’Auth0 Dashboard les autorisations de client d’application autorisées pour une Organization donnée :

    1. Accédez à [**Organizations**](https://manage.auth0.com/dashboard/*/organizations/list) et sélectionnez l’Organization à examiner.
    2. Sélectionnez l’onglet **Machine-to-Machine Access**. Une liste paginée de toutes les applications pouvant accéder à une API pour cette Organization par association directe s’affiche.
    3. Sélectionnez une application pour examiner les API autorisées qui y sont répertoriées.

    <Frame>
      <img src="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/5FVJzuu5yq8IHwpQKdYYU6/3468ee757c1e65fb51883213e7e7b476/image2.png?fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=f17469cd3533de8d74a2c1ed6552058e" alt="Auth0 Dashboard affichant une liste paginée d’applications associées directement à une organization avec accès M2M" width="1053" height="695" data-path="docs/images/cdy7uua7fh8z/5FVJzuu5yq8IHwpQKdYYU6/3468ee757c1e65fb51883213e7e7b476/image2.png" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    Récupérez les autorisations de client associées à une Organization au moyen du point de terminaison d’API [Organization Client Grants](https://auth0.com/docs/api/management/v2/organizations/get-organization-client-grants) :

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

    Vous pouvez également utiliser le query parameter `q` du point de terminaison d’API [Get Clients](https://auth0.com/docs/api/management/v2/clients/get-clients), avec le terme de recherche `client_grant.organization_id:{organization_id}`, pour récupérer de l’information sur les applications pouvant accéder à au moins une des API d’une Organization. Utilisez la syntaxe Lucene, semblable à la [User Search Query Syntax](/docs/fr-ca/manage-users/user-search/user-search-query-syntax).

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

<div id="access-granted-to-any-organization">
  ### Accès accordé à toute organisation
</div>

Utilisez l’[Auth0 Dashboard](https://manage.auth0.com/) et la [Management API](https://auth0.com/docs/api/management/v2) pour auditer l’accès M2M des applications ayant accès à toute Organization.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Cette section ne s’applique pas aux [applications tierces](/docs/fr-ca/get-started/applications/third-party-applications). Les applications tierces ne peuvent pas utiliser `allow_any_organization` et n’apparaîtront pas dans cette requête d’audit. Utilisez plutôt les requêtes d’association directe ci-dessus.
</Callout>

<Tabs>
  <Tab title="Auth0 Dashboard">
    1. Accédez à [**Organizations**](https://manage.auth0.com/dashboard/*/organizations/list).
    2. Sélectionnez l’onglet **Machine-to-Machine Access**. Une liste paginée de toutes les applications pouvant accéder à au moins une des API d’une Organization s’affiche.
    3. Choisissez une application pour consulter la liste des API autorisées pour celle-ci.

    <Frame>
      <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4H3VjVTz0ZGDvV5za9y33m/d0d193df808d7308469ce66d4357b5e7/image1.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=b86c0367d226420c54334ff39ddd8558" alt="Auth0 Dashboard affichant une liste paginée d’applications ayant un accès M2M accordé à toute organisation" width="1051" height="657" data-path="docs/images/cdy7uua7fh8z/4H3VjVTz0ZGDvV5za9y33m/d0d193df808d7308469ce66d4357b5e7/image1.png" />
    </Frame>
  </Tab>

  <Tab title="Management API">
    Récupérez les autorisations de client avec le paramètre `allow_any_organization` au moyen du point de terminaison d’API [Get Client Grants](https://auth0.com/docs/api/management/v2/client-grants/get-client-grants) :

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

    Vous pouvez également utiliser le query parameter `q` du point de terminaison d’API [Get Client Grants](https://auth0.com/docs/api/management/v2/client-grants/get-client-grants), avec le terme de recherche `client_grant.allow_any_organization:true`, pour récupérer des renseignements sur les applications pouvant accéder à au moins une des API de toute Organization. Utilisez la syntaxe Lucene, semblable à la [User Search Query Syntax](/docs/fr-ca/manage-users/user-search/user-search-query-syntax).

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

<div id="search-applications-based-on-organization-access">
  ### Rechercher des applications selon l’accès de l’organisation
</div>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Les résultats de recherche sont éventuellement cohérents.
</Callout>

Le tableau suivant présente les termes de recherche pris en charge pour rechercher des applications à l’aide du paramètre `q` au point de terminaison `/clients` :

| **Champ**                                        | **Description**                                                                                                    |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| `client_grant.organization_id:{organization_id}` | Permet de rechercher les applications qui peuvent accéder à au moins une des API d’une organisation.               |
| `client_grant.allow_any_organization:true`       | Permet de rechercher les applications qui peuvent accéder à au moins une des API de n’importe quelle organisation. |

<div id="tenant-logs">
  ### Journaux du locataire
</div>

L’accès machine à machine pour les organisations est également consigné dans les journaux du locataire. Vous pouvez consulter l’`organization` associée à la requête dans le journal du locataire `seccft` correspondant.

L’exemple de code suivant présente un journal du locataire `seccft` contenant des renseignements sur l’organisation :

```json lines theme={null}
{
  "date": "2024-10-24T19:06:17.460Z",
  "type": "seccft",
  "description": "Client Credentials for Access Token",
  "connection_id": "",
  "client_id": "qoQKtXuhdSibs1jUeXk3mmCwXoAafGnO",
  "client_name": "jwt.io (Test Application)",
  "ip": "130.41.219.72",
  "user_agent": "Other 0.0.0 / Other 0.0.0",
  "hostname": "david-test.test-aws-abundant-lobster-6004.auth0c.com",
  "user_id": "",
  "user_name": "",
  "organization_id": "org_mPdwToiiHHOtz0SH",
  "organization_name": "cc_test",
  "audience": "https://jwt.io.com",
  "scope": "read:data",
  "$event_schema": {
    "version": "1.0.0"
  },
  "log_id": "90020241024190617517817000000000000001223372036854775862",
  "tenant_name": "david-test",
  "_id": "90020241024190617517817000000000000001223372036854775862",
  "isMobile": false,
  "id": "90020241024190617517817000000000000001223372036854775862"
}
```
