Organisations
Vous devriez créer une Auth0 organisation distincte pour chacune des organisations que vous gérerez. Dans ce cas, nous créerons l’organisationhoekstra pour représenter Hoekstra & Associates dans notre exemple, et l’organisation metahexa pour représenter MetaHexa Bank. Vous pouvez créer des organisations soit manuellement dans le , soit par programmation à l’aide de la .
Applications
Selon la conception de la mise en œuvre de votre tenant organisation, vous disposez de différentes options pour créer des définitions d’Application dans votre tenant Auth0. Quelle que soit l’option choisie, l’organization behavior est défini au niveau de l’application. Si vous provisionnez un tenant organisation distinct pour chacun de vos clients, vous aurez généralement besoin d’une définition d’Application distincte dans Auth0 pour chacun d’eux. Cette approche implique aussi habituellement l’envoi du paramètreclient_id propre à l’Application ainsi que du paramètre organization, qui indique quelle Auth0 organisation utiliser, dans le cadre de la requête vers le endpoint /authorize. Pour en savoir plus, consultez Authentication.
Bonne pratiquePour simplifier la configuration et maximiser l’isolation de sécurité, définissez les Applications dans Auth0 de façon distincte. Cela permet de configurer séparément des éléments comme les callback URLs autorisées et, conformément au principe du moindre privilège, de réduire au minimum l’exposition potentielle de toute information liée au Client ID et au Client Secret.
client_id d’Application commun, mais le paramètre organization sera omis de la requête vers le endpoint /authorize.
Connexions
Ensuite, définissez les connexions qui serviront à authentifier les utilisateurs. Dans ce cas, nous définirons une connexion de base de données pour les utilisateurs associés à Hoekstra & Associates et une connexion d’entreprise pour les utilisateurs associés à MetaHexa Bank.Bonne pratiquePour les organisations à fournisseur d’identité unique (IdP), créez une connexion pour chaque organisation définie afin d’offrir la souplesse nécessaire à divers cas d’utilisation. Par exemple, une seule connexion de base de données ou connexion de base de données personnalisée par organisation vous permet de supprimer facilement les utilisateurs associés aux organisations mises hors service et offre un maximum de souplesse pour les organisations ayant des exigences différentes en matière de complexité des mots de passe.
Utilisateurs
Pour les utilisateurs authentifiés au moyen de Connections autres que Database ou connexions de base de données personnalisées, l’utilisateur est provisionné dans le (IdP) externe, indépendamment d’Auth0, de la manière habituelle. En revanche, les utilisateurs authentifiés au moyen de Database ou de connexions de base de données personnalisées peuvent être provisionnés de différentes façons. L’Auth0 Dashboard et l’Auth0 Management API peuvent être utilisés pour créer un utilisateur directement dans votre tenant Auth0. Nous prenons aussi en charge la migration automatique et la migration en bloc. Les utilisateurs sont ensuite associés à une organisation Auth0 en leur attribuant des appartenances, et une organisation Auth0 peut être configurée pour attribuer automatiquement l’appartenance d’un utilisateur ou manuellement.Pour qu’une appartenance à une organisation soit attribuée manuellement à un utilisateur, cet utilisateur doit déjà avoir un profil d’utilisateur défini dans Auth0. Vous pouvez attribuer manuellement une appartenance au moyen du Dashboard du tenant Auth0 ou de l’Auth0 Management API.
Invitation
La fonctionnalité Auth0 organisation prend aussi en charge l’utilisation des invitations de membres. Dans le flux de travail d’invitation de membres, le fait d’inviter un utilisateur à une application fait en sorte que l’utilisateur soit provisionné automatiquement et que son appartenance soit créée automatiquement.connexion de base de données
En reprenant notre exemple de Hoekstra & Associates, voyons comment cette mise en œuvre peut se dérouler lorsqu’une connexion de base de données est utilisée dans le cadre d’une invitation d’utilisateur; la plus grande partie du processus décrit est généralement prise en charge par l’Auth0 SDK pertinent ou par la bibliothèque associée à votre pile technologique :
-
Jennifer, de Hoekstra & Associates, reçoit un courriel envoyé par le tenant Auth0 de Travel0 au nom de l’instance Travel0 Corporate Booking de Hoekstra & Associates.
- Le courriel a été envoyé comme décrit dans Inviter des membres d’organisation et pourrait avoir été déclenché depuis l’Auth0 Dashboard ou l’Auth0 Management API.
-
Jennifer ouvre le courriel et clique sur le lien qu’il contient. Ce faisant, son navigateur est redirigé vers l’instance de Travel0 Corporate Booking de Hoekstra & Associates. L’URL de base utilisée dans le lien est définie comme l’URI de connexion de l’application, qui fait partie de la définition de l’application Travel0 Corporate Booking dans le tenant Auth0 Travel0 de Hoekstra & Associates.
- Le lien contient les paramètres
organizationetorganization_name. Le paramètreorganizationest défini sur l’ID de la définition Auth0 Organization correspondante dans votre tenant Auth0. Celui-ci sera transmis au tenant Auth0 à l’étape 3. - Le lien contient également le paramètre
invitation, qui sera lui aussi transmis à l’étape 3.
- Le lien contient les paramètres
-
L’instance Travel0 Corporate Booking de Hoekstra & Associates redirige vers le tenant Auth0 de Travel0 à l’aide du flux de code d’autorisation (avec ou sans PKCE) en appelant le point de terminaison
/authorizeet en lui transmettant des paramètres semblables à ceux-ci, généralement à l’aide d’un Auth0 SDK ou d’une bibliothèque tierce :redirect_uri:https://hoekstra.corp.travel0.net/login/callbackresponse_type:codestate: state unique généré pour cette sessionscope:openid profile…- tout scope OIDC supplémentaire nécessaire, selon les renseignements requis sur l’utilisateur.
client_id: Client ID associé à l’Application créée dans le tenant Auth0 Travel0 pour l’instance de Travel0 Corporate Booking de Hoekstra & Associates.organization: ID de l’organization invitante, généralement obtenu à partir du lien dans le courriel décrit à l’étape 2. Indiqué sous la formeorganization=organization_id, où organization_id correspond à l’identifiant associé à la définition d’Auth0 Organization correspondante dans votre tenant Auth0.invitation: paramètreinvitationsupplémentaire associé au lien dans le courriel, comme décrit à l’étape 2.
-
Le tenant Auth0 de Travel0 redirige vers
/signup/invitationpour permettre à l’utilisateur de définir un mot de passe.- Une Universal Login Page, que vous pouvez configurer pour afficher des éléments d’image de marque propres à l’organisation, comme décrit dans Image de marque, s’affiche.
- L’utilisateur saisit son mot de passe (ainsi que tout renseignement d’authentification supplémentaire, comme son nom d’utilisateur) et clique sur Continuer. L’ID utilisateur correspond à l’adresse courriel associée à l’utilisateur et ne peut pas être modifié.
-
Le tenant Auth0 Travel0 vérifie les identifiants. S’ils sont valides, l’utilisateur est provisionné et son appartenance à l’Auth0 Organization est établie. L’utilisateur est authentifié de façon implicite, et le pipeline Rules s’exécute. Les Rules peuvent servir à gérer le contrôle d’accès, comme décrit dans Authorization.
- Si les identifiants de l’utilisateur ne sont pas valides, l’utilisateur sera alors invité à les saisir à nouveau.
-
Après la validation des identifiants et l’exécution des Rules, l’utilisateur est redirigé vers le
redirect_uri(https://hoekstra.corp.travel0.net/login/callback) avec lestatetransmis à l’étape 3, ainsi qu’uncode. -
L’instance de Travel0 Corporate Booking de Hoekstra & Associates valide le
state, puis fait une requête au tenant Auth0 de Travel0 à l’adressehttps://auth.travel0.net/oauth/token, en transmettant lecodeainsi que sonclient idet sonclient secreten échange du ID Token. Le ID Token est ensuite utilisé pour générer une session pourhttps://hoekstra.corp.travel0.net. - L’instance de Travel0 Corporate Booking de Hoekstra & Associates affiche ensuite la page appropriée à l’utilisateur.
Connexion d’entreprise
En reprenant notre exemple de MetaHexa Bank, voyons comment cette mise en œuvre peut se dérouler lorsqu’une Connexion d’entreprise est utilisée dans le cadre d’une invitation d’utilisateur; encore une fois, la majeure partie du flux de travail décrit sera généralement prise en charge grâce à l’Auth0 SDK approprié ou à la bibliothèque associée à votre pile technologique :
-
Amintha de MetaHexa Bank reçoit un courriel envoyé depuis le tenant Auth0 de Travel0 au nom de l’instance de Travel0 Corporate Booking de MetaHexa Bank.
- Le courriel a été envoyé comme décrit dans Inviter des membres d’une organisation et peut avoir été déclenché à partir de l’Auth0 Dashboard ou de l’Auth0 Management API.
-
Amintha ouvre le courriel et clique sur le lien qu’il contient. Cela dirige son navigateur vers l’instance de Travel0 Corporate Booking de MetaHexa Bank. L’URL de base utilisée dans le lien correspond à l’Application Login URI, qui fait partie de la définition de l’application de l’instance de Travel0 Corporate Booking de MetaHexa Bank dans le tenant Auth0 de Travel0.
- Le lien contient les paramètres
organizationetorganization_name. Le paramètreorganizationcorrespond à l’ID de la définition Auth0 organisation correspondante dans votre tenant Auth0. Il sera transmis au tenant Auth0 à l’étape 3. - Le lien contient aussi le paramètre
invitation, qui sera également transmis à l’étape 3.
- Le lien contient les paramètres
-
L’instance de Travel0 Corporate Booking de MetaHexa Bank redirige vers le tenant Auth0 de Travel0 en utilisant le flux de code d’autorisation (avec ou sans PKCE) en appelant le point de terminaison
/authorizeet en transmettant des paramètres semblables aux suivants, habituellement par l’intermédiaire d’un Auth0 SDK ou d’une bibliothèque tierce :redirect_uri:https://metahexa.corp.travel0.net/login/callbackresponse_type:codestate: state unique généré pour cette sessionscope:openid profile…- tout scope OIDC supplémentaire nécessaire, selon les renseignements requis au sujet de l’utilisateur.
client_id: Client ID associé à l’Application créée dans le tenant Auth0 de Travel0 pour l’instance de Travel0 Corporate Booking de MetaHexa Bank.organization: ID de l’organisation invitante, habituellement obtenu au moyen du lien dans le courriel décrit à l’étape 2. Il est indiqué sous la formeorganization=organization_id, où organization_id correspond à l’identificateur associé à la définition Auth0 organisation correspondante dans votre tenant Auth0.invitation: Paramètreinvitationsupplémentaire associé au lien dans le courriel, comme décrit à l’étape 2.
-
Le tenant Auth0 de Travel0 redirige vers
/invitation, où Amintha est informée qu’elle sera redirigée vers le IdP de MetaHexa pour s’authentifier à l’aide de ses identifiants de premier facteur.- L’utilisateur confirme, et
- Auth0 redirige vers l’instance IdP de MetaHexa Bank, où
- La page de connexion s’affiche, et l’utilisateur saisit ses identifiants puis clique sur
login.
- Si l’opération réussit, l’appartenance à l’Auth0 organisation est établie, l’utilisateur est implicitement authentifié, et le pipeline Rules s’exécute. Les Rules peuvent être utilisées pour gérer le contrôle d’accès comme décrit dans Authorization.
metahexa.corp.travel0.net) à la place de Hoekstra & Associates.