Points clés
- Le contexte de tenant doit être explicite et validé à chaque frontière d'exécution.
- L'autorisation appartient aux opérations de domaine, pas seulement au middleware de route.
- Les files d'attente, caches, exports, logs et outils de support font partie du modèle d'isolation.
- Tester continuellement les chemins de refus inter-tenants.
Le multi-tenancy est une architecture d'autorisation
Une colonne tenant_id est utile, mais ce n'est pas une stratégie d'isolation. Les requêtes traversent navigateurs, APIs, services, files d'attente, caches, stockage objet, exports et flux de travail de support. Chaque frontière a besoin d'une identité de tenant non ambiguë et d'une règle définissant ce qui peut la traverser.
Le défaut le plus sûr est de dériver le contexte de tenant de l'appartenance authentifiée et du routage côté serveur — pas d'un identifiant arbitraire accepté du client.
Choisir l'isolation selon la conséquence
Les tables partagées, schémas séparés et bases de données séparées offrent des propriétés opérationnelles et d'isolation différentes. Le bon choix dépend de l'échelle, de la personnalisation, des attentes réglementaires, du risque de voisin bruyant, des exigences de sauvegarde et restauration et de la capacité opérationnelle.
Les modèles hybrides sont courants : la plupart des tenants partagent un schéma bien indexé tandis que des charges de travail sélectionnées reçoivent une séparation physique plus forte. L'application devrait masquer ce placement derrière des dépôts ou services stables.
Le travail en arrière-plan est un échec d'isolation courant
Chaque job devrait porter un contexte de tenant et d'acteur immuable, le revalider lors de l'exécution et écrire les sorties dans des emplacements définis par tenant. Les clés de cache génériques, les répertoires temporaires réutilisés et les noms de fichiers d'export non scopés peuvent contourner une autorisation API par ailleurs soigneuse.
- Clés de cache et de stockage objet préfixées par le tenant
- Contrôles de débit et de concurrence par tenant si nécessaire
- Logs et traces scopés sans fuite de données sensibles
- Impersonation de support avec approbation, motif, expiration et historique d'audit
Tester l'espace négatif
Les tests de chemin normal prouvent qu'un utilisateur peut accéder à ses données. Les tests d'isolation prouvent que les identifiants, filtres, exports, webhooks, recherche et timing ne peuvent pas exposer les données d'un autre tenant.
Créez deux tenants dans les tests d'intégration et tentez systématiquement des lectures et mutations inter-frontières. Incluez les workers, opérations par lots, outils d'administration et chemins d'erreur — pas seulement les endpoints HTTP.
À propos de l’auteur
Centillion Edge Engineering
Notre équipe d’ingénierie écrit sur les décisions d’architecture, de sécurité, de données et de livraison derrière des systèmes d’entreprise fiables.