Mandantenisolierung - Grundlagen der SaaS-Architektur

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Mandantenisolierung

Je mehr Kunden auf ein Mehrmandantenmodell umsteigen, desto mehr werden sie sich Gedanken darüber machen, ob ein Mandant möglicherweise auf die Ressourcen eines anderen Mandanten zugreifen kann. SaaS-Systeme beinhalten explizite Mechanismen, die sicherstellen, dass die Ressourcen jedes Mandanten — auch wenn sie auf einer gemeinsam genutzten Infrastruktur laufen — isoliert sind.

Dies bezeichnen wir als Mandantenisolierung. Die Idee hinter der Mandantenisolierung ist, dass Ihre SaaS-Architektur Konstrukte einführt, die den Zugriff auf Ressourcen streng kontrollieren und jeden Versuch blockieren, auf Ressourcen eines anderen Mandanten zuzugreifen.

Beachten Sie, dass die Mandantenisolierung von den allgemeinen Sicherheitsmechanismen getrennt ist. Ihr System unterstützt Authentifizierung und Autorisierung. Die Tatsache, dass ein Mandantenbenutzer authentifiziert ist, bedeutet jedoch nicht, dass Ihr System isoliert ist. Die Isolierung wird getrennt von der grundlegenden Authentifizierung und Autorisierung angewendet, die Teil Ihrer Anwendung sein können.

Um dies besser zu verstehen, stellen Sie sich vor, Sie haben einen Identitätsanbieter verwendet, um den Zugriff auf Ihr SaaS-System zu authentifizieren. Das Token aus dieser Authentifizierungserfahrung kann auch Informationen über die Rolle eines Benutzers enthalten, mit denen der Zugriff dieses Benutzers auf eine bestimmte Anwendungsfunktion gesteuert werden kann. Diese Konstrukte bieten Sicherheit, aber keine Isolation. Tatsächlich könnte ein Benutzer authentifiziert und autorisiert werden und trotzdem auf die Ressourcen eines anderen Mandanten zugreifen. Nichts an Authentifizierung und Autorisierung wird diesen Zugriff unbedingt blockieren.

Die Mandantenisolierung konzentriert sich ausschließlich auf die Verwendung des Mandantenkontextes, um den Zugriff auf Ressourcen einzuschränken. Es wertet den Kontext des aktuellen Mandanten aus und bestimmt anhand dieses Kontextes, welche Ressourcen für diesen Mandanten zugänglich sind. Diese Isolierung wird für alle Benutzer innerhalb dieses Mandanten angewendet.

Dies wird schwieriger, wenn wir uns ansehen, wie die Mandantenisolierung in all den verschiedenen SaaS-Architekturmustern realisiert wird. In einigen Fällen kann eine Isolierung erreicht werden, indem ganze Stapel von Ressourcen einem Mandanten zugewiesen werden, wobei Netzwerkrichtlinien (oder grobkörnere) den mandantenübergreifenden Zugriff verhindern. In anderen Szenarien haben Sie möglicherweise Ressourcen (Elemente in einer Amazon DynamoDB-Tabelle) gebündelt, für die genauere Richtlinien zur Steuerung des Zugriffs auf die Ressourcen erforderlich sind.

Jeder Versuch, auf eine Mandantenressource zuzugreifen, sollte nur auf die Ressourcen beschränkt werden, die zu diesem Mandanten gehören. Es ist die Aufgabe der SaaS-Entwickler und -Architekten, zu bestimmen, welche Kombination von Tools und Technologien die Isolationsanforderungen Ihrer spezifischen Anwendung unterstützt.