Zum Inhalt springen

SaaS Architektur

Mandantenisolationsmuster für mandantenfähige Unternehmensplattformen

Wie Identität, Autorisierung, Datenzugriff, Hintergrundjobs, Caching und Beobachtbarkeit aufeinander abgestimmt sein müssen, um Mandantengrenzen zu wahren.

Centillion Edge Engineering10 Min. Lektüre

Kernaussagen

  • Der Mandantenkontext muss an jeder Ausführungsgrenze explizit sein und validiert werden.
  • Die Autorisierung gehört zu Domänenoperationen, nicht nur zur Routen-Middleware.
  • Warteschlangen, Caches, Exporte, Protokolle und Support-Tools sind Teil des Isolationsmodells.
  • Testen Sie mandantenübergreifende Ablehnungspfade kontinuierlich.
01

Mandantenfähigkeit ist eine Autorisierungsarchitektur

Eine tenant_id-Spalte ist nützlich, aber keine Isolationsstrategie. Anfragen bewegen sich über Browser, APIs, Dienste, Warteschlangen, Caches, Objektspeicher, Exporte und Support-Workflows. Jede Grenze benötigt eine eindeutige Mieteridentität und eine Regel dafür, was sie überschreiten darf.

Die sicherste Standardeinstellung besteht darin, den Mandantenkontext aus der authentifizierten Mitgliedschaft und dem serverseitigen Routing abzuleiten – und nicht aus einer willkürlichen, vom Client akzeptierten Kennung.

02

Wählen Sie die Isolation je nach Konsequenz

Gemeinsam genutzte Tabellen, separate Schemata und separate Datenbanken bieten unterschiedliche Betriebs- und Isolationseigenschaften. Die richtige Wahl hängt von Umfang, Anpassung, regulatorischen Erwartungen, Noisy-Neighbor-Risiko, Backup- und Wiederherstellungsanforderungen und Betriebskapazität ab.

Hybridmodelle sind weit verbreitet: Die meisten Mandanten nutzen ein gut indiziertes Schema, während ausgewählte Arbeitslasten eine stärkere physische Trennung erfahren. Die Anwendung sollte diese Platzierung hinter stabilen Repositorys oder Diensten verbergen.

03

Autorisieren Sie den Vorgang, die Ressource und den Bereich

Rollennamen allein sind meist zu weit gefasst. Bei der Autorisierung sollten die Organisation, das Unterkonto, der Ressourceneigentum, das aktivierte Modul, die angeforderte Aktion und manchmal auch der Datensatzstatus berücksichtigt werden.

Zentrale Richtlinienhelfer reduzieren Inkonsistenzen, Domänendienste müssen jedoch weiterhin Invarianten erzwingen. Die Sicherheit auf Datenbankzeilenebene kann die Tiefenverteidigung erhöhen, wenn Verbindungs- und Kontextmanagement streng sind.

04

Hintergrundarbeit ist ein häufiger Isolationsfehler

Jeder Job sollte einen unveränderlichen Mandanten- und Akteurskontext enthalten, ihn während der Ausführung erneut validieren und Ausgaben an mandantenbezogene Speicherorte schreiben. Generische Cache-Schlüssel, wiederverwendete temporäre Verzeichnisse und Exportdateinamen ohne Gültigkeitsbereich können die ansonsten sorgfältige API-Autorisierung umgehen.

  • Cache- und Objektspeicherschlüssel mit Mandantenpräfix
  • Kontrolle der Rate und Parallelität pro Mandant, sofern erforderlich
  • Umfangreiche Protokolle und Traces ohne Leckage sensibler Nutzdaten
  • Unterstützen Sie den Identitätswechsel mit Genehmigung, Grund, Ablauf und Prüfverlauf
05

Testen Sie den negativen Raum

Happy-Path-Tests beweisen, dass ein Benutzer auf seine Daten zugreifen kann. Isolationstests beweisen, dass Identifikatoren, Filter, Exporte, Webhooks, Suche und Timing die Daten eines anderen Mandanten nicht offenlegen können.

Erstellen Sie in Integrationstests zwei Mandanten und versuchen Sie systematisch grenzüberschreitende Lesevorgänge und Mutationen. Beziehen Sie Worker, Batch-Vorgänge, Verwaltungstools und Fehlerpfade ein – nicht nur HTTP-Endpunkte.

Über den Autor

Centillion Edge Engineering

Unser Engineering-Team schreibt über die Architektur-, Sicherheits-, Daten- und Delivery-Entscheidungen hinter verlässlichen Enterprise-Systemen.