> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fournisseur d’identité unique : Authentication (Authentification)

> En savoir plus sur l’authentification des utilisateurs par le biais d’organisations pour les architectures à locataires multiples.

Dans nos scénarios d’architecture, nous fournissons des recommandations générales sur  [B2B Authentication (authentification C3E)](/docs/fr-ca/get-started/architecture-scenarios/business-to-business/authentication), y compris l’utilisation de la [Universal Login (Connexion universelle)](/docs/fr-ca/authenticate/login/auth0-universal-login) en tant que meilleure pratique. Nous vous recommandons d’y réfléchir tout en prenant connaissance des conseils donnés ici.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  **Meilleure pratique**

  Bien que de nombreux flux d’authentification soient pris en charge dans Auth0, les flux utilisant la connexion universelle Auth0 sont considérés à la fois comme meilleures pratiques de l’industrie et d’Auth0 parce qu’ils fournissent des [fonctionnalités d’authentification et de sécurité](/docs/fr-ca/authenticate/login/universal-vs-embedded-login). En particulier, la connexion universelle dispose de la [SSO (Connexion unique) prête à l’emploi](https://auth0.com/learn/how-to-implement-single-sign-on/) et contribue à repousser les cyber-attaques de type [hameçonnage](https://auth0.com/blog/all-you-need-to-know-about-the-google-docs-phishing-attack/) et [bucket brigade](/docs/fr-ca/secure/security-guidance/prevent-threats), c’est pourquoi elle devrait être privilégiée lorsque l’utilisateur fournit un mot de passe. Qui plus est, la [nouvelle expérience de connexion universelle](/docs/fr-ca/authenticate/login/auth0-universal-login/universal-login-vs-classic-login/universal-experience) est le seul mécanisme pris en charge lors de l’utilisation de la fonctionnalité Auth0 Organizations.
</Callout>

L’authentification des utilisateurs nécessite le traitement d’identifiants de premier facteur. Que cette opération soit effectuée par Auth0 ou par un fournisseur d’identité tiers, lorsque vous utilisez la fonction Organizations d’Auth0, vous devez également avoir recours à la [Universal Login Experience (Expérience de Connexion Universelle)](/docs/fr-ca/authenticate/login/auth0-universal-login/universal-login-vs-classic-login/universal-experience) de la plateforme.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 ne prend en charge qu’un seul contexte d’utilisateur authentifié par locataire Auth0; les locataires ne peuvent pas passer sélectivement d’un contexte d’utilisateur authentifié à un autre. Le changement de contexte utilisateur a un impact sur toute session SSO active, et cela s’étend à la fonction Organizations d’Auth0. Si les contextes par organisation sont absolument nécessaires, plusieurs locataires Auth0 devront être déployés en production. Étant donné que l’utilisation de plusieurs locataires a des conséquences qui affectent l’authentification unique (SSO), la gestion des profils utilisateurs, etc., vous devriez bien réfléchir avant de suivre cette voie.
</Callout>

## Connexion à la base de données

Prenons l’exemple de Hoekstra & Associates, et voyons comment cette implémentation d’authentification pourrait se dérouler avec un utilisateur authentifié au moyen d’une connexion de base de données d’Auth0; ici aussi, la plus grande partie du flux de travail décrit sera généralement gérée avec la trousse SDK Auth0 pertinente ou la bibliothèque associée à votre infrastructure technologique :

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/fr-ca/cdy7uua7fh8z/4ZdA61Ar4ijowOLLGCgLKx/fb71991702bf5f223f5ea184f7b6e693/Isolated_Users__Shared_Apps__Database_Login_Flow.png" alt="Architecture Scenarios - MOA - Isolated Users, Shared Apps, Database Login Flow" />
</Frame>

1. Jennifer de Hoekstra & Associates ouvre un navigateur et se rend sur l’instance Hoekstra & Associates de Travel0 Corporate Booking.

   1. Si elle dispose déjà d’un témoin de session avec l’instance Hoekstra & Associates de Travel0 Corporate Booking, elle sera généralement connectée au système et nous nous arrêterons à cette étape. Pour en savoir plus, consultez [Authentification unique](/docs/fr-ca/authenticate/single-sign-on).

2. L’instance Hoekstra & Associates de Travel0 Corporate Booking redirige le locataire Travel0 Auth0 à l’aide du [Flux de code d’autorisation](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow) (avec ou sans [PKCE](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce)) en appelant le point de terminaison `/authorize` et en transmettant les paramètres, généralement à l’aide d’une [trousse SDK Auth0](/docs/fr-ca/libraries) ou une bibliothèque tierce :

   1. `Redirect_uri` : [`https://hoekstra.corp.travel0.net/login/callback`](https://hoekstra.corp.travel0.net/login/callback)
   2. `response_type`: `code`
   3. `state` : [state](/docs/fr-ca/secure/attack-protection/state-parameters) unique généré dans cette séance
   4. `scope` : `openid profile`...
   5. toutes les [permissions OIDC](/docs/fr-ca/get-started/apis/scopes/openid-connect-scopes) supplémentaires nécessaires, en fonction des informations requises sur l’utilisateur.
   6. `client_id` : ID client associé à l’application créée dans le locataire Travel0 Auth0 pour l’instance de Travel0 Corporate Booking de Hoekstra & Associates.
   7. `organization` : organization Auth0 à utiliser. Lorsque l’organization est connue à l’avance, une requête à `/authorize` peut inclure ce paramètre, qui est spécifié sous la forme `organization=organization_id`, où l’ID de l’organization est l’identifiant associé à la définition de l’organization Auth0 correspondante dans votre locataire Auth0. Vous pouvez également omettre le paramètre `organization` dans l’appel à `/authorize` et configurer votre locataire Auth0 pour inviter l’utilisateur à sélectionner l’organization appropriée au moment de l’authentification de premier facteur. Pour plus d’informations, consultez [Définir le comportement des organizations](/docs/fr-ca/manage-users/organizations/configure-organizations/define-organization-behavior).

      <Warning>
        Si le paramètre `organization (organisation)` est inclus dans un appel au point de terminaison `/authorize`, il doit alors être utilisé de manière cohérente pendant toute la durée de la session avec Auth0. La fonctionnalité Organizations (Organisations) n’associe aucune organisation sélectionnée à la session Auth0 SSO, de sorte que l’omission de ce paramètre invitera toujours l’utilisateur à sélectionner l’organisation souhaitée.
      </Warning>

3. Le locataire Travel0 Auth0 redirige vers `/login` pour récupérer les identifiants de l’utilisateur. Si Jennifer dispose déjà d’une session de base de données avec Hoekstra & Associates, les étapes 3 et 4 seront omises. Pour en savoir plus, consultez [Authentification unique (SSO)](/docs/fr-ca/authenticate/single-sign-on).

   1. Une page de connexion universelle s’affiche, que vous pouvez configurer pour inclure des éléments d’image de marque propres à l’organisation, comme décrit dans la section [Image de marque](/docs/fr-ca/get-started/architecture-scenarios/multiple-organization-architecture/single-identity-provider-organizations/branding).

4. L’utilisateur saisit ses identifiants et clique sur `Login (Se connecter)`.

5. Le locataire Travel0 Auth0 vérifie les identifiants de l’utilisateur; s’ils sont valides, le pipeline Règles s’exécute. Les [Règles](/docs/fr-ca/customize/rules) peuvent être utilisées pour gérer le contrôle d’accès, comme décrit dans la section [Autorisation](/docs/fr-ca/get-started/architecture-scenarios/multiple-organization-architecture/single-identity-provider-organizations/authorization). Si les identifiants de l’utilisateur ne sont pas valides, l’utilisateur sera invité à les saisir à nouveau.

   <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
     L’affectation automatique des membres sera effectuée si cette option a été spécifiée. Pour en savoir plus, consultez [Octroi d’une adhésion en temps voulu à une connexion d’organisation](/docs/fr-ca/manage-users/organizations/configure-organizations/grant-just-in-time-membership). Pour [manually-assigned Membership (adhésion affectée manuellement)](/docs/fr-ca/manage-users/organizations/configure-organizations/assign-members) la validation échouera si l’utilisateur n’est pas déjà affecté en tant que membre de l’organisation.
   </Callout>

6. Une fois l’authentification de premier facteur et l’exécution des règles réussies, l’utilisateur est redirigé vers le `redirect_uri` ([`https://hoekstra.corp.travel0.net/login/callback`](https://hoekstra.corp.travel0.net/login/callback)) avec le `state` passé à l’étape 2, ainsi qu’un `code`.

7. L’instance de Travel0 Corporate Booking de Hoekstra & Associates valide le `state`, puis appelle le locataire Travel0 Auth0 à [`https://auth.travel0.net/oauth/token`](https://auth.travel0.net/oauth/token), en passant le `code` et son `ID client` et son `secret client` en échange du [jeton d’ID](https://auth0.com/docs/tokens/id-tokens). Le jeton d’ID est ensuite utilisé pour générer une session pour [`https://hoekstra.corp.travel0.net`](https://hoekstra.corp.travel0.net).

8. L’instance de Travel0 Corporate Booking de Hoekstra & Associates affiche la page appropriée à l’utilisateur.

## Connexion d’entreprise

L’authentification par le biais d’une connexion d’entreprise suit un processus très similaire. Prenons l’exemple de MetaHexa Bank, et voyons comment cette implémentation d’authentification pourrait se dérouler avec un utilisateur authentifié au moyen d’une connexion d’entreprise à MetaHexa Bank; encore une fois, la plupart du flux de travail décrit sera généralement géré à l’aide de la trousse SDK Auth0 pertinente ou de la bibliothèque associée à votre infrastructure technologique.

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/auth0/docs/images/fr-ca/cdy7uua7fh8z/11D1vMSKQcxyhfdDZzLprD/a8b0b85363ebbe6af3c67ba5ba90fc8b/Isolated_Users__Shared_Apps__Enterpise_Login_Flow.png" alt="Architecture Scenarios - MOA - Isolated Users, Shared Apps, Enterprise Login Flow" />
</Frame>

1. Marie de MetaHexa Bank ouvre son navigateur et se rend sur l’instance MetaHexa Bank de Travel0 Corporate Booking.

   1. Si elle dispose déjà d’un témoin de session avec l’instance MetaHexa Bank de Travel0 Corporate Booking, elle sera généralement connectée directement au système et nous nous arrêterons à cette étape. Pour en savoir plus, consultez [Authentification unique (SSO)](/docs/fr-ca/authenticate/single-sign-on).

2. L’instance MetaHexa Bank de Travel0 Corporate Booking redirige le locataire Travel0 Auth0 à l’aide du [Flux de code d’autorisation](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow) (avec ou sans [PKCE](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce)) en appelant le point de terminaison `/authorize` et en transmettant les paramètres, généralement à l’aide d’une [trousse SDK Auth0](/docs/fr-ca/libraries) ou d’une bibliothèque tierce :

   1. `Redirect_uri` : [`https://metahexa.corp.travel0.net/login/callback`](https://metahexa.corp.travel0.net/login/callback)

   2. `response_type`: `code`

   3. `state` : [state](/docs/fr-ca/secure/attack-protection/state-parameters) unique généré dans cette séance

   4. `scope` : `openid profile`...

   5. toutes les [permissions OIDC](/docs/fr-ca/get-started/apis/scopes/openid-connect-scopes) supplémentaires nécessaires, en fonction des informations requises sur l’utilisateur.

   6. `client_id` : ID client associé à l’application créée dans le locataire Travel0 Auth0 pour l’instance de MetaHexa Bank de Travel0 Corporate Booking.

   7. `organization` : organization Auth0 à utiliser. Lorsque l’organization est connue à l’avance, une requête à `/authorize` peut inclure ce paramètre, qui est spécifié sous la forme `organization=organization_id`, où l’ID de l’organization est l’identifiant associé à la définition de l’organization Auth0 correspondante dans votre locataire Auth0. Vous pouvez également omettre le paramètre `organization` dans l’appel à `/authorize` et configurer votre locataire Auth0 pour inviter l’utilisateur à sélectionner l’organization appropriée au moment de l’authentification de premier facteur. Pour plus d’informations, consultez [Définir le comportement des organizations](/docs/fr-ca/manage-users/organizations/configure-organizations/define-organization-behavior).

      <Warning>
        Si le paramètre `organization (organisation)` est inclus dans un appel au point de terminaison `/authorize`, il doit alors être utilisé de manière cohérente pendant toute la durée de la session avec Auth0. La fonctionnalité Organizations (Organisations) n’associe aucune organisation sélectionnée à la session Auth0 SSO, de sorte que l’omission de ce paramètre invitera toujours l’utilisateur à sélectionner l’organisation souhaitée.
      </Warning>

   8. `connection` : nom de la connexion d’entreprise Auth0 configurée pour MetaHexa Bank.

      <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
        **Meilleure pratique**

        Fournissez toujours le paramètre `connection`. S’il n’est pas fourni, l’utilisateur est invité à sélectionner la connexion d’entreprise associée au fournisseur d’identités en amont (IdP), ce qui constitue une étape supplémentaire du point de vue de l’expérience utilisateur.
      </Callout>

3. Le locataire Travel Auth0 redirige le fournisseur d’identité de MetaHexa pour authentifier les identifiants de premier facteur.

   1. La page de connexion s’affiche alors, et l’utilisateur saisit ses identifiants. Si Marie dispose déjà d’une session avec le fournisseur d’identité de MetaHexa, les étapes 3 et 4 seront omises. Pour en savoir plus, consultez [Authentification unique (SSO)](/docs/fr-ca/authenticate/single-sign-on).

4. L’utilisateur saisit ses identifiants et clique sur `Login (Se connecter)`.

5. Le pipeline Règles s’exécute dès que l’authentification par le premier facteur est réussie. Les [Règles](/docs/fr-ca/customize/rules) peuvent être utilisées pour gérer le contrôle d’accès, comme décrit dans la section [Autorisation](/docs/fr-ca/get-started/architecture-scenarios/multiple-organization-architecture/single-identity-provider-organizations/authorization). Si les identifiants de l’utilisateur ne sont pas valides, l’utilisateur sera invité à les saisir à nouveau.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  L’affectation automatique des membres sera effectuée si cette option a été spécifiée. Pour en savoir plus, consultez [Octroi d’une adhésion en temps voulu à une connexion d’organisation](/docs/fr-ca/manage-users/organizations/configure-organizations/grant-just-in-time-membership). Pour [manually-assigned Membership (adhésion affectée manuellement)](/docs/fr-ca/manage-users/organizations/configure-organizations/assign-members) la validation échouera si l’utilisateur n’est pas déjà affecté en tant que membre de l’organisation.
</Callout>

Les étapes 6 à 8 correspondent à celles décrites dans le scénario [Connexion à une base de données](#database-connection), mais où Amintha est l’utilisateur plutôt que Jennifer et où MetaHexa Bank (`metahexa.corp.travel0.net`) remplacera Hoekstra & Associates.

## Connexion sociale

L’authentification par le biais d’une connexion de réseau social suit un schéma similaire à celui associé à une [connexion d’entreprise](#enterprise-connection), mais le fournisseur d’identité en amont est associé au fournisseur du réseau social plutôt qu’à une organisation particulière.

<Warning>
  Les connexions sociales Auth0 sont définies au niveau du locataire. En règle générale, une seule connexion sociale est configurée par fournisseur social et par locataire Auth0, ce qui correspond à une définition de l’ensemble du locataire Auth0. De ce fait, tout consentement fourni par un utilisateur s’appliquera à toutes les organisations Auth0 définies dans un locataire Auth0 et non à une organisation spécifique.
</Warning>

Avec les connexions via les réseaux sociaux, l’isolement des utilisateurs ne peut pas être modélisé de manière cohérente pour chaque organisation. Bien qu’il puisse être tentant de le modéliser en créant plusieurs connexions à un fournisseur de réseau social, par exemple à l’aide de [connexions sociales personnalisées](/docs/fr-ca/connections/social/oauth2), vous devriez vous abstenir de le faire; une telle stratégie peut entraîner la création du même identifiant d’utilisateur dans plusieurs définitions de connexion, ce qui entraînerait forcément des problèmes à terme.
