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

> Personnalisez le comportement des organisations Auth0 avec les Actions et les SDKs, notamment les flux de connexion adaptés aux organisations, l’attribution de rôles et les jetons de contexte des membres.

# Développement personnalisé avec les organisations

Vous pouvez étendre les capacités d’Auth0 à l’aide des métadonnées d’[organisation](/docs/fr-ca/manage-users/organizations/organizations-overview) et des Actions, ou utiliser nos API et nos SDKs pour créer des tableaux de bord d’administration des organisations pour vos utilisateurs.

<Card title="La disponibilité varie selon le forfait Auth0">
  La disponibilité de cette fonctionnalité dépend de votre forfait Auth0 ou de votre entente personnalisée. Pour en savoir plus, consultez la page [Tarification](https://auth0.com/pricing).
</Card>

<div id="extensibility">
  ## Extensibilité
</div>

Les organisations prennent en charge nos points d’extensibilité, ce qui vous permet de définir des propriétés dans les métadonnées de l’organisation et de rendre ces données accessibles à [Actions](/docs/fr-ca/customize/actions). Vous pouvez ainsi personnaliser les capacités pour certains clients ou certaines applications; par exemple, vous pouvez exécuter une logique personnalisée dans Actions pour certains clients selon leur plan d’abonnement en stockant cette information dans les métadonnées de l’organisation.

<div id="actions-event-object">
  ### Objet d’événement des Actions
</div>

L’objet d’événement d’une Action stocke des renseignements contextuels sur la transaction d’authentification en cours, comme l’adresse IP de l’utilisateur, l’application ou la localisation.

Si vous modifiez le contenu du jeton à l’aide de l’objet `event` dans une Action, vos modifications sont répercutées dans les jetons une fois l’exécution de toutes les Actions terminée.

<div id="sdks">
  ## SDKs
</div>

Pour permettre aux membres de gérer eux-mêmes leurs organisations, vous pouvez attribuer des rôles aux membres et utiliser notre API et nos SDKs pour créer des tableaux de bord dans vos produits. Les administrateurs peuvent configurer <Tooltip tip="Single Sign-On (SSO) : service qui, après qu’un utilisateur se connecte à une application, connecte automatiquement cet utilisateur à d’autres applications." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Single+Sign-On">Single Sign-On</Tooltip> (SSO), inviter des utilisateurs dans des organisations, affecter des membres à des organisations, attribuer des rôles aux membres, et ainsi de suite.

Voici des exemples de tâches que vous pouvez effectuer avec les organisations à l’aide des SDKs.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Les exemples ci-dessous font référence à la revendication `org_id`, disponible par défaut dans les jetons d’ID et d’accès. Cependant, vous pouvez configurer votre tenant pour qu’il prenne aussi en charge l’utilisation des noms d’organisation dans l’Authentication API. Les jetons contiendront alors à la fois les revendications `org_id` et `org_name`. Si la revendication `org_name` est présente, validez-la en plus de `org_id` afin de vous assurer que les valeurs reçues correspondent à une entité de confiance.

  De façon générale, l’utilisation des ID d’organisation est la méthode privilégiée pour valider les jetons. Cependant, les noms d’organisation peuvent être utilisés s’ils conviennent mieux à votre cas d’utilisation. Pour comprendre les conséquences possibles de l’utilisation des noms d’organisation pour valider les jetons, consultez [Use Organization Names in Authentication API](/docs/fr-ca/manage-users/organizations/configure-organizations/use-org-name-authentication-api).
</Callout>

<div id="i-want-users-to-log-in-to-a-specified-organization">
  ### Je veux que les utilisateurs se connectent à une organisation précise
</div>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Cette approche suppose que vous contrôlez le code de l’application. Pour les applications tierces, vous ne pouvez pas garantir que le développeur externe transmet le paramètre `organization`. Utilisez plutôt [Demander les identifiants ou Demander l’organisation](/docs/fr-ca/manage-users/organizations/login-flows-for-organizations).
</Callout>

Lorsque vous définissez un nouveau client, transmettez l’ID de l’organisation dans le paramètre `organization`. Ensuite, lors du callback, assurez-vous que l’organisation renvoyée dans le <Tooltip tip="jeton d’ID : jeton destiné au client lui-même plutôt qu’à l’accès à une ressource." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=ID+token">jeton d’ID</Tooltip> est bien la même que celle envoyée dans la requête `/authorize`, en validant la revendication `org_id` de la même façon que d’autres revendications, comme `exp` et `nonce`.

Pour en savoir plus, consultez :

* [Ajouter la connexion à l’aide du flux de code d’autorisation](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow/add-login-auth-code-flow)
* [Appeler votre API à l’aide du flux de code d’autorisation](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow/call-your-api-using-the-authorization-code-flow)
* [Ajouter la connexion à l’aide du flux de code d’autorisation avec PKCE](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/add-login-using-the-authorization-code-flow-with-pkce)
* [Appeler votre API à l’aide du flux de code d’autorisation avec PKCE](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/call-your-api-using-the-authorization-code-flow-with-pkce)
* [Ajouter la connexion à l’aide du flux implicite avec Form Post](/docs/fr-ca/get-started/authentication-and-authorization-flow/implicit-flow-with-form-post/add-login-using-the-implicit-flow-with-form-post)
* [Appeler votre API à l’aide du flux hybride](/docs/fr-ca/get-started/authentication-and-authorization-flow/hybrid-flow/call-api-hybrid-flow)
* [Personnaliser le délai d’expiration d’inactivité de la session selon l’organisation](/docs/fr-ca/manage-users/sessions/manage-sessions-actions)

<div id="from-my-application-i-want-to-get-the-organization-to-which-the-authenticated-user-logged-in">
  ### Depuis mon application, je veux obtenir l’organisation à laquelle l’utilisateur authentifié s’est connecté
</div>

Si l’utilisateur a été authentifié à l’aide d’une organisation, l’ID de l’organisation apparaît dans la revendication `org_id` du jeton d’ID. Avec le Auth0 SPA SDK, récupérez-le comme suit :

`const { org_id } = await client.getIdTokenClaims();`

<div id="from-my-api-i-want-to-get-the-organization-with-which-the-access-token-was-issued">
  ### Dans mon API, je veux récupérer l’organisation pour laquelle le jeton d’accès a été émis
</div>

Si l’utilisateur s’est authentifié au moyen d’une organisation et qu’une <Tooltip tip="Audience : identifiant unique de l’audience d’un jeton émis. Nommée aud dans un jeton, sa valeur contient l’ID d’une application (Client ID) pour un ID Token ou d’une API (API Identifier) pour un Access Token." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=audience">audience</Tooltip> a été spécifiée, le <Tooltip tip="Audience : identifiant unique de l’audience d’un jeton émis. Nommée aud dans un jeton, sa valeur contient l’ID d’une application (Client ID) pour un ID Token ou d’une API (API Identifier) pour un Access Token." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=access+token">jeton d’accès</Tooltip> sera un <Tooltip tip="JSON Web Token (JWT) : format standard des ID Token (et souvent des Access Token) utilisé pour représenter des revendications de façon sécurisée entre deux parties." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=JWT">JWT</Tooltip> et contiendra la revendication `org_id`, avec l’ID de l’organisation à laquelle l’utilisateur s’est connecté.

Cela peut être validé avec les autres revendications côté backend, comme dans l’exemple Ruby suivant :

```ruby lines theme={null}
class JsonWebToken
  def self.verify(token)
    decoded = JWT.decode(token, nil,
               true, # Vérifier la signature de ce jeton
               algorithms: 'RS256',
               iss: 'https://YOUR_DOMAIN/',
               verify_iss: true,
               aud: Rails.application.secrets.auth0_api_audience,
               verify_aud: true) do |header|
      jwks_hash[header['kid']]
    end

    # Récupérer la valeur de l'ID d'organisation du jeton décodé
    org = decoded[0]['org_id']
  end
end
```

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  **Trouvez votre domaine Auth0**

  Votre domaine Auth0 est composé du nom de votre tenant, de votre sous-domaine régional (sauf si votre tenant se trouve dans la région des États-Unis et a été créé avant juin 2020), puis de `.auth0.com`. Par exemple, si le nom de votre tenant était `travel0`, votre domaine Auth0 serait `travel0.us.auth0.com`. (Si votre tenant se trouvait aux États-Unis et avait été créé avant juin 2020, votre nom de domaine serait alors `https://travel0.auth0.com`.)

  Si vous utilisez des domaines personnalisés, il doit s’agir de votre nom de domaine personnalisé.
</Callout>

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

* [Comprendre le fonctionnement d’Auth0 Organizations](/docs/fr-ca/manage-users/organizations/organizations-overview)
* [Créer votre première organisation](/docs/fr-ca/manage-users/organizations/create-first-organization)
* [Utiliser les jetons et les organisations](/docs/fr-ca/manage-users/organizations/using-tokens)
* [Configurer les organisations](/docs/fr-ca/manage-users/organizations/configure-organizations)
* [Auth0 Actions](/docs/fr-ca/customize/actions)
