Pratiques exemplaires pour les applications multilocataires
Décrit les pratiques exemplaires pour utiliser Auth0 afin de sécuriser vos applications multilocataires.
La multilocation est une approche architecturale dans laquelle une seule instance logicielle s’exécute sur un serveur et est accessible à plusieurs groupes d’utilisateurs. Avec la multilocation, vous pouvez regrouper des utilisateurs ayant des caractéristiques communes et leur attribuer des permissions distinctes ainsi que différents niveaux d’accès à votre application. Cela vous permet de créer et de maintenir des expériences adaptées à différents clients, unités d’affaires ou autres groupes d’utilisateurs définis.Dans Auth0, la meilleure façon de mettre en œuvre la multilocation consiste à utiliser Auth0 Organizations. Au besoin, d’autres solutions plus anciennes peuvent être utilisées pour répondre à des cas d’utilisation métier précis. Si vous offrez un produit ou un service business-to-business (B2B), la mise en place de la multilocation pour vos utilisateurs professionnels peut convenir à votre cas d’utilisation.Les sections ci-dessous présentent les options offertes pour mettre en œuvre la multilocation dans Auth0.
Cet article utilise le terme d’architecture logicielle « tenant » pour désigner un groupe d’utilisateurs pouvant accéder à votre application. Pour faire référence à votre instance Auth0, le terme « locataire Auth0 » est utilisé.
Pour la plupart des cas d’utilisation multilocataires, Auth0 Organizations est la solution idéale pour vous et vos utilisateurs. Auth0 Organizations prend en charge les implémentations interentreprises (B2B) comportant une ou plusieurs applications auxquelles les utilisateurs finaux peuvent accéder.Les fonctionnalités courantes des implémentations B2B comprennent :
Un produit offert sous licence à une autre entreprise pour l’usage de ses employés.
Plusieurs organisations qui nécessitent leur propre fédération et une personnalisation légère de l’image de marque de l’expérience d’authentification.
Des niveaux d’accès distincts à l’application pour différents groupes d’utilisateurs.
Si Auth0 Organizations ne répondent pas aux exigences de votre cas d’utilisation, vous pouvez envisager les anciennes solutions décrites ci-dessous. Pour obtenir des conseils sur le choix de l’approche la mieux adaptée à vos besoins particuliers, veuillez communiquer avec notre équipe des Professional Services.Les anciennes solutions comprennent :
Utiliser une connexion Auth0 pour représenter chaque locataire.
Utiliser une application Auth0 pour représenter chaque locataire.
Utiliser un locataire Auth0 pour représenter chaque locataire.
Stocker les détails du locataire dans le profil de l’utilisateur.
Des limites d’entités peuvent s’appliquer. Pour en savoir plus, consultez la stratégie sur les limites des entités. Si vous avez un abonnement Enterprise, vous ne serez pas limité par ces limites d’entités, mais vous pourriez l’être par une connexion qui compte déjà des milliers d’applications activées.
Vous pouvez représenter chacun de vos locataires par une connexion Auth0 distincte.Cette approche vous permet de prendre en charge des scénarios où :
Vous avez, pour chacun de vos locataires, des exigences différentes au niveau de la connexion, comme des stratégies de mot de passe distinctes.
Vous avez des répertoires d’utilisateurs provenant de connexions différentes. Par exemple, un locataire pourrait exiger que les utilisateurs fournissent des identifiants de nom d’utilisateur et de mot de passe, tandis qu’un autre locataire pourrait exiger que les utilisateurs se connectent au moyen d’un d’entreprise.
Si vous utilisez Lock dans votre application, notez qu’il prend en charge un maximum de 50 connexions de base de données par application. Les connexions sociales et d’entreprise ne sont pas touchées par cette limite, mais elles demeurent assujetties à la stratégie sur les limites des entités.
Les limites des entités peuvent s’appliquer. Pour en savoir plus, consultez la stratégie sur les limites des entités. Si vous avez un abonnement Enterprise, vous ne serez pas limité par les limites des entités, mais vous pourriez l’être par une connexion qui compte déjà des milliers d’applications activées.
Vous pouvez représenter chacun de vos locataires par une application Auth0 distincte.Cette approche vous permet de configurer chaque application Auth0 de manière distincte en fonction des besoins propres à chaque locataire, par exemple les connexions disponibles.Vous devrez faire le suivi des locataires auxquels appartiennent vos utilisateurs dans votre application. Lorsqu’un utilisateur se connecte à votre application, vous devrez récupérer cette information et l’orienter vers l’application Auth0 appropriée pour terminer l’authentification.Pour activer une connexion pour plusieurs applications avec la d’Auth0, appelez le point de terminaison Mettre à jour les applications activées pour une connexion, puis transmettez l’id de la connexion concernée.
Vous pouvez associer chacun de vos locataires à un locataire Auth0 distinct.Cette approche vous permet de partager l’accès au avec des utilisateurs, tout en le restreignant par locataire, mais elle vous oblige à configurer Auth0 individuellement pour chaque locataire.Cela signifie qu’en plus d’administrer séparément les fonctionnalités de chaque locataire Auth0 (comme l’image de marque, Actions et ), votre application devra prendre en charge plusieurs configurations d’Auth0.
Stocker les détails du locataire dans le profil de l’utilisateur
Vous pouvez stocker les détails du locataire dans le profil de l’utilisateur et permettre à votre application de lire ces renseignements une fois l’utilisateur connecté.Cette approche permet à tous vos utilisateurs, peu importe le locataire auquel ils appartiennent, de se connecter à l’aide d’une configuration uniforme (par exemple, les connexions disponibles).Pour ce faire, vous pouvez stocker les détails du locataire dans le profil Auth0 de l’utilisateur, dans l’objet app_metadata, au moyen d’un identifiant de votre choix (par exemple, "tenant": "customer-group-12345"). Une fois l’utilisateur connecté, votre application récupère la variable tenant, puis affiche une version adaptée à la valeur renvoyée.