Français
  • multi-locataire
  • saas
  • logiciel
  • développement
  • architecture

Isolation des locataires dans une application multi-locataire

L'isolation des locataires est un concept clé dans les applications multi-locataires. Dans cet article, nous allons discuter de ce que c'est et comment cela peut être réalisé.

Guamian
Guamian
Product & Design

Bonjour à tous ! Dans ce chapitre, nous allons approfondir nos discussions précédentes sur les sujets multi-locataires. Si vous n'avez pas encore lu les articles précédents, nous vous recommandons de commencer par ceux-là !

Lors de la discussion sur les applications multi-locataires, il est important de penser à l'isolation des locataires. Cela signifie garder les données et les ressources de différents locataires séparées et sécurisées au sein d'un système partagé (par exemple, une infrastructure cloud ou une application multi-locataire).

L'objectif de l'isolation des locataires est de s'assurer que les données et les opérations de chaque locataire restent distinctes et sécurisées les unes des autres, même lorsqu'ils utilisent les mêmes ressources sous-jacentes.

Dans un scénario Software as a Service (SaaS), l'isolation des locataires implique la création de structures au sein du cadre SaaS qui régulent strictement l'accès aux ressources. Cela empêche toute tentative non autorisée d'accéder aux ressources d'un autre locataire.

Bien que l'explication puisse sembler abstraite, nous utiliserons des exemples et des détails clés pour expliquer davantage la mentalité d'isolation.

L'isolation des locataires ne va pas à l'encontre de la mentalité "partagée" de la multi-location

C'est parce que l'isolation des locataires n'est pas nécessairement une construction au niveau des ressources d'infrastructure. Dans le domaine de la multi-location et de l'isolation, certains considèrent l'isolation comme une division stricte entre les ressources d'infrastructure réelles. Cela conduit généralement à un modèle où chaque locataire a des bases de données, des instances de calcul, des comptes ou des clouds privés séparés. Dans les scénarios de ressources partagées, comme les applications multi-locataires, la manière d'atteindre l'isolation peut être une construction logique.

L'isolation des locataires se concentre exclusivement sur l'utilisation du contexte de "locataire" pour limiter l'accès aux ressources. Elle évalue le contexte du locataire actuel et utilise ce contexte pour déterminer quelles ressources sont accessibles pour ce locataire. Elle applique cette isolation à tous les utilisateurs au sein de ce locataire. Toute tentative d'accès à une ressource de locataire doit être limitée uniquement à ces ressources qui appartiennent à ce locataire.

L'isolation se décline en différents niveaux

Lorsque nous comprenons que l'isolation n'est pas strictement liée aux niveaux de ressources d'infrastructure et n'est pas une séparation nette entre l'infrastructure physique, cela conduit à une conclusion comme celle-ci :

Au lieu de considérer l'isolation comme un simple "oui" ou "non", considérez-la comme un spectre. Vous pouvez configurer des parties de votre système pour être plus ou moins isolées en fonction de vos besoins.

Le diagramme ci-dessous illustre ce spectre d'isolation.

isolé partagé

L'authentification et l'autorisation ne sont pas égales à "l'isolation"

Utiliser l'authentification et l'autorisation pour contrôler l'accès à vos environnements SaaS est important, mais ce n'est pas suffisant pour une isolation complète. Ces mécanismes ne sont qu'une partie du puzzle de sécurité.

Les gens posent souvent la question, puis-je utiliser des solutions d'autorisation générale et un contrôle d'accès basé sur les rôles pour atteindre l'isolation des locataires ? Vous pouvez construire une application multi-locataire, mais vous ne pouvez pas dire que vous avez atteint et employé des stratégies d'isolation des locataires en tant que meilleure pratique. Nous ne le recommandons généralement pas, car

Pour illustrer, considérez une situation où vous avez mis en place l'authentification et l'autorisation pour votre système SaaS. Lorsque les utilisateurs se connectent, ils reçoivent un jeton contenant des informations sur leur rôle, dictant ce qu'ils peuvent faire dans l'application. Cette approche renforce la sécurité, mais ne garantit pas l'isolation.

Maintenant, voici le piège : sans incorporer le contexte de "locataire", tel qu'un ID de locataire, pour restreindre l'accès aux ressources, se fier uniquement à l'authentification et à l'autorisation ne empêchera pas un utilisateur avec le bon rôle d'accéder aux ressources d'un autre locataire.

C'est là que l'isolation des locataires entre en jeu. Elle utilise des identifiants spécifiques au locataire pour établir des frontières, un peu comme des murs, des portes et des serrures, assurant une séparation nette entre les locataires.

Identité dans les applications multi-locataires

Nous avons discuté de l'isolation des locataires, mais qu'en est-il des identités ? Comment décidez-vous si vos identités doivent être "isolées" ou non?

Il y a souvent une confusion autour du concept d'"isolement d'identité". Il pourrait se référer à des situations où un utilisateur réel a deux identités dans la compréhension générale des gens.

  1. Les deux identités peuvent exister au sein d'un seul système d'identité. Par exemple, Sarah pourrait avoir un email personnel enregistré avec un email d'entreprise connecté via une authentification unique (SSO).
  2. Les utilisateurs maintiennent deux identités distinctes au sein de systèmes d'identité séparés, représentant des produits totalement séparés. Ces produits n'ont aucun rapport l'un avec l'autre.

Parfois, ces scénarios sont appelés "Identité isolée". Pourtant, cette étiquette pourrait ne pas aider à prendre une décision.

Plutôt que de déterminer si vous avez besoin de "l'isolement d'identité", considérez si vous ou un segment de votre entreprise ou produit avez besoin de maintenir des systèmes d'identité séparés. Cette réponse peut orienter votre conception du système de gestion des identités et des accès (IAM). Pour une réponse brève concernant une application multi-locataire,

Dans la plupart des cas, dans les applications multi-locataires, les identités sont partagées alors que les ressources de chaque locataire sont isolées.

Dans les applications multi-locataires, les identités, contrairement aux ressources et données spécifiques aux locataires, sont partagées entre plusieurs locataires. Imaginez-vous en tant qu'administrateur de bâtiment ; vous ne voudriez pas maintenir deux feuilles de noms séparées pour gérer l'identité de vos locataires.

Lorsqu'on vise l'isolation des locataires, vous avez peut-être remarqué l'accent récurrent sur le terme "organisation", souvent considéré comme une meilleure pratique pour construire des applications multi-locataires.

En utilisant la notion d'"organisation", vous pouvez atteindre l'isolation des locataires dans votre application multi-locataire tout en maintenant un système d'identité unifié. Cela permet à plusieurs "organisations" de coexister, indépendamment, mais de partager des ressources indépendantes du locataire au sein de l'application. Comme des résidents vivant dans un immeuble, chaque organisation utilise l'application sans se soucier de ses voisins, car l'"organisation" fournit la séparation nécessaire sous la forme de murs, de couloirs, de portes et de serrures. Ils partagent l'infrastructure globale de l'immeuble, le système de design intérieur et divers composants tangibles ou intangibles.

Logto introduit la fonctionnalité "Organisation" en novembre

Logto est actuellement en développement actif de la fonctionnalité "Organisation", avec un lancement prévu en nov 2023. Cette fonctionnalité est spécifiquement conçue pour répondre aux exigences d'isolation des locataires nécessaires à la construction d'un produit SaaS, en s'alignant avec les normes et les meilleures pratiques de l'industrie.

Dans le prochain chapitre, nous approfondirons la fonctionnalité "Organisation" et comment Logto facilite la mise en œuvre des meilleures pratiques pour construire une application multi-locataire.