RBAC vs. Mandantenisolierung: Zwei unterschiedliche Sicherheitsgrenzen

RBAC steuert, was ein Benutzer tun darf; Mandantenisolierung steuert, auf welche Ressourcen eines Mandanten diese Aktion zugreifen darf. Erfahren Sie, warum die Sicherheit von Multi-Tenant-SaaS beide Grenzen erfordert.
Veröffentlicht:
Aleksandar Stajić
Aktualisiert: 8. Oktober 2026 um 20:56
RBAC vs. Mandantenisolierung: Zwei unterschiedliche Sicherheitsgrenzen

RBAC und Mandantentrennung lösen zwei unterschiedliche Sicherheitsprobleme in Multi-Tenant-Systemen. Role-Based Access Control (RBAC) bestimmt, was ein authentifizierter Principal tun darf, z. B. Bestellungen lesen, Produkte bearbeiten oder Benutzer verwalten. Mandantentrennung bestimmt, auf die Daten, Ressourcen und den Ausführungskontext welches Mandanten dieser Principal zugreifen darf. Ein Benutzer kann korrekt authentifiziert und korrekt einer RBAC-Rolle zugewiesen sein und dennoch einen Sicherheitsfehler erleben, wenn die Anwendung dieser Rolle erlaubt, auf Ressourcen eines anderen Mandanten zuzugreifen.

Was RBAC wirklich steuert

RBAC ist ein Autorisierungsmodell, bei dem Berechtigungen mit Rollen verknüpft und Benutzer diesen Rollen zugewiesen werden. Die Rolle fungiert als administrative Abstraktion zwischen Identitäten und Berechtigungen.

Die klassische RBAC-Arbeit von NIST formalisiert dies anhand von Benutzern, Rollen, Berechtigungen, Operationen und Objekten. Der praktische Nutzen besteht darin, dass eine Organisation die Autorisierung über relativ stabile Job- oder Verantwortungsrollen verwalten kann, anstatt jede Berechtigung direkt an jeden Benutzer zu knüpfen.

Eine Rolle wie EDITOR kann daher bedeuten: darf Inhalte lesen, Inhalte schreiben und Inhalte veröffentlichen. Eine Rolle wie ACCOUNTANT kann bedeuten: darf Abrechnungsdaten lesen, Rechnungen abstimmen und Abrechnungen genehmigen.

Was Mandantentrennung wirklich steuert

Mandantentrennung ist die Gesamtheit der Mechanismen, die verhindern, dass ein Mandant die Ressourcen eines anderen Mandanten in einem gemeinsam genutzten System liest, verändert, beeinflusst oder versehentlich erhält.

Die geschützte Grenze ist breiter als Datenbankzeilen. Mandantenspezifischer Zustand kann in relationalen Tabellen, Objektspeichern, Vektorindizes, Caches, Suchindizes, Warteschlangennachrichten, Dateien, temporären Artefakten, Hintergrundjobs, Analysen, Ratenbegrenzungen und Infrastrukturressourcen existieren.

Die SaaS-Richtlinie von AWS macht die Unterscheidung explizit: Autorisierung gewährt Zugriff auf Ressourcen, während Mandantentrennung sicherstellt, dass diese Ressourcen die falsche Mandantengrenze nicht überschreiten können, selbst wenn die Infrastruktur gemeinsam genutzt wird.

Das einfachste Beispiel

Angenommen, Alice ist Administratorin für Mandant A und Bob ist Administrator für Mandant B. Beide Benutzer haben legitimerweise dieselbe ADMIN-Rolle.

RBAC kann korrekt zu dem Schluss kommen, dass beide Benutzer eine Operation wie users.read ausführen dürfen. Wenn Alice jedoch Benutzer-ID 847 anfordert, muss die Anwendung dennoch überprüfen, ob Benutzer 847 zu Mandant A gehört.

Wenn die API nur prüft „Alice hat ADMIN“ und dann SELECT * FROM users WHERE id = 847 ausführt, war RBAC erfolgreich, während die Mandantentrennung fehlgeschlagen ist.

Eine korrekte Multi-Tenant-Autorisierungsentscheidung

1
1. Principal authentifizieren
Feststellen, wer der Benutzer, Dienst oder Agent ist.
2
2. Verifizierten Mandantenkontext auflösen
Bestimmen, welcher Mandantenkontext gilt, anhand vertrauenswürdiger serverseitiger Identitäts-/Mitgliedschaftsinformationen.
3
3. Berechtigung auflösen
Bewerten, ob die Rolle oder Richtlinie des Principals die angeforderte Operation erlaubt.
4
4. Zielressource eingrenzen
Überprüfen, ob das Zielobjekt zum erlaubten Mandanten oder explizit gemeinsam genutzten Bereich gehört.
5
5. An der Zugriffsgrenze durchsetzen
Die Datenbank-, Cache-, Speicher-, Warteschlangen- oder Dienstoperation mit angewendeten Mandanteneinschränkungen ausführen.
6
6. Beide Dimensionen prüfen
Principal, Mandant, Operation, Ziel und Ergebnis aufzeichnen, damit mandantenübergreifende Versuche sichtbar sind.

Wo das einfache Beispiel an seine Grenzen stößt

Reale Systeme enthalten oft mehrere Identitätsklassen: Mandantenbenutzer, Plattformadministratoren, Hintergrundprozesse, Integrationen, Agenten und mandantenübergreifende Betriebsdienste. Einige davon überschreiten legitim Mandantengrenzen.

Das beseitigt nicht die Notwendigkeit der Isolation. Es bedeutet, dass mandantenübergreifende Berechtigungen explizit, eng begrenzt und separat prüfbar sein müssen, anstatt versehentlich aus einer globalen Rolle oder einer nicht eingegrenzten Datenbankverbindung zu entstehen.

Die Mandantenisolation kann auch je nach Ebene variieren. Ein Produkt kann Anwendungsserver gemeinsam nutzen und gleichzeitig Datenbanken trennen oder eine gemeinsame Datenbank mit zeilenbasierten Richtlinien verwenden und Premium-Mandanten isolierten Speicher oder Rechenleistung bieten. Es gibt keine einzige universelle Isolations-Topologie.

RBAC vs. Mandantenisolation

Zwei verschiedene Sicherheitsdimensionen

RBACMandantenisolation
Hauptfrage
Typische Einheit
Beispiel
Typisches Versagen
Typische Implementierung
Kann es allein existieren?

Authentifizierung, Autorisierung und Isolation sind drei verschiedene Prüfungen

EbeneFrageBeispiel für Versagen
AuthentifizierungWer ist dieser Prinzipal?Angreifer gibt sich als Alice aus
Autorisierung / RBACDarf dieser Prinzipal diese Operation ausführen?Betrachter kann Benutzer löschen
MandantenisolationDarf diese Operation diese Mandanten-/Ressourcengrenze erreichen?Mandant-A-Administrator liest Bestellung von Mandant B

Diese Prüfungen sind miteinander verbunden, aber nicht gegenseitig ersetzbar. Die Authentifizierung kann perfekt sein, während die Autorisierung fehlschlägt. Die Autorisierung kann korrekt sein, während die Mandantenisolation fehlschlägt. Ein sicherer SaaS-Anfragepfad benötigt alle anwendbaren Grenzen.

Rollen brauchen einen Geltungsbereich

Das Wort ADMIN ist ohne Geltungsbereich unvollständig. Es kann Plattformadministrator, Mandantenadministrator, Projektadministrator, Arbeitsbereichsadministrator oder Administrator eines Subsystems bedeuten.

In Multi-Mandanten-Systemen sollte die Rollenzuweisung normalerweise mit der Mandantenmitgliedschaft oder einem anderen expliziten Ressourcenbereich verknüpft sein. Derselbe Benutzer kann legitim ADMIN in Mandant A und VIEWER in Mandant B sein.

Ein globales Rollenmodell, das diese Unterscheidung ignoriert, kann zu Berechtigungslecks führen, selbst wenn die Berechtigungszuordnung selbst korrekt ist.

Der Mandantenkontext muss aus einem vertrauenswürdigen Pfad stammen

Eine vom Client bereitgestellte Mandanten-ID ist als Selektor nützlich, aber sie ist kein Nachweis der Berechtigung. Der Server muss die Mandantenmitgliedschaft anhand der authentifizierten Identität und der aktuellen Autorisierungsdaten ableiten oder überprüfen.

Die aktuelle Multi-Mandanten-Richtlinie von OWASP empfiehlt, den Mandantenkontext früh im Anfragelebenszyklus festzulegen, und warnt ausdrücklich davor, Client-Header oder Anfrageparameter als Autorisierungsnachweis zu behandeln.

Das ist wichtig, weil eine triviale Änderung der Anfrage von tenant=A zu tenant=B nicht ausreichen darf, um die Isolationsgrenze zu überschreiten.

Der Mandantenbereich gehört in die Ressourcensuche

Ein gängiges Isolationsmuster auf Anwendungsebene besteht darin, den Mandantenbereich in dieselbe Abfrage aufzunehmen, die die Ressource auflöst.

Schwache SucheStärkere mandantenbezogene Suche
findFirst({ where: { id } })findFirst({ where: { id, tenantId } })
UPDATE orders SET ... WHERE id = ?UPDATE orders SET ... WHERE id = ? AND tenant_id = ?
cache.get('user:' + id)cache.get('tenant:' + tenantId + ':user:' + id)

Dieses Muster ist nicht der einzige mögliche Isolationsmechanismus, aber es hält die Mandantenzugehörigkeit nahe an der Datenzugriffsoperation und verhindert, dass eine Objekt-ID zu einer mandantenübergreifenden Fähigkeit wird.

Anwendungsprüfungen sind nützlich, aber die Isolation sollte nicht von perfektem Entwicklerverhalten abhängen

Die Isolationsrichtlinie von AWS warnt ausdrücklich davor, die Durchsetzung der Isolation nur den Serviceentwicklern zu überlassen. In einer großen Codebasis kann irgendwann eine Abfrage, ein Cache-Schlüssel oder ein Worker-Pfad den Mandantenbereich auslassen.

Verteidigung in der Tiefe kann die Isolation daher in gemeinsame Middleware, Repository-/Service-Schichten, Policy-Engines, Datenbank-Row-Level-Security, dedizierte Anmeldeinformationen, separate Schemas oder separate Datenbanken verlagern, je nach Risiko und Architektur.

Datenbank-Isolationsstrategien

StrategieGrenzeStärke / Kompromiss
Gemeinsame Tabellen + MandantenschlüsselZeilen-/AnwendungsrichtlinieOperativ effizient; erfordert umfassende Mandantenbereichsabdeckung und starke Tests
Gemeinsame Tabellen + Datenbank-RLSDatenbankrichtliniengrenzeVerringert die Abhängigkeit von jeder Anwendungsabfrage; erfordert korrekte Rollen, Sitzungs-/Transaktions-Mandantenkontext und Richtlinienabdeckung
Separate SchemasNamensraum-/DB-RollengrenzeStärkere logische Trennung; mehr operative Komplexität
Separate DatenbankenDatenbank-/AnmeldeinformationsgrenzeStarke Isolation und einfachere Blast-Radius-Geschichte; höhere Bereitstellungs- und Betriebskosten
Separate Infrastruktur/KontoInfrastrukturgrenzeStärkste grobkörnige Trennung; höchste Kosten und operativer Aufwand
HybridPro Workload/DatenklasseErmöglicht stärkere Isolation nur dort, wo Risiko/Compliance es rechtfertigt

Das aktuelle Multi-Tenant Security Cheat Sheet von OWASP listet separate Datenbanken, separate Schemas, gemeinsame Tabellen mit Zeilensteuerung und Hybridmodelle auf. Das richtige Modell hängt von Bedrohungsniveau, Compliance, Leistung und Betriebskosten ab.

PostgreSQL Row-Level Security kann Verteidigung in der Tiefe bieten

Bei gemeinsamen Tabellen kann PostgreSQL Row-Level Security ein Mandantenprädikat auf der Datenbankebene durchsetzen, sodass gewöhnliche Abfragen keine Zeilen außerhalb der aktiven Mandantenrichtlinie sehen können.

RLS ist jedoch keine Magie. PostgreSQL-Superuser und Rollen mit BYPASSRLS können Zeilenrichtlinien umgehen. OWASP empfiehlt daher, eine Rolle mit minimalen Berechtigungen für den Anforderungspfad zu verwenden und denselben Verbindungs-/Pooling-Modus zu testen, der in der Produktion verwendet wird.

Die Wiederverwendung von Verbindungen ist ein weiterer wichtiger Randfall: Der Mandantenkontext muss für jede Transaktion/Anforderung sicher gesetzt und zurückgesetzt werden, damit eine gepoolte Verbindung keinen vorherigen Mandantenzustand preisgeben kann.

Mandantenisolierung muss Caches einschließen

Eine Datenbankabfrage kann perfekt abgegrenzt sein und dennoch Daten über einen gemeinsamen Cache-Schlüssel preisgeben.

Wenn user:42 sowohl in Mandant A als auch in Mandant B existiert, kann ein globaler Cache-Schlüssel den Wert des falschen Mandanten zurückgeben. Mandantensensible Cache-Schlüssel sollten jedes Attribut enthalten, das die Sichtbarkeit oder Ergebnis-Semantik ändert, üblicherweise Mandant, Benutzer, Locale, Feature-Set oder Berechtigungsversion.

Cache-Partitionierung ist Verteidigung in der Tiefe, kein Ersatz für Autorisierung. Die Anforderung muss weiterhin autorisiert werden, bevor geschützte zwischengespeicherte Inhalte zurückgegeben werden.

Dateien und Objektspeicher benötigen ihre eigene Mandantengrenze

Objektspeicher sollte globale, mandantenbezogene und benutzerbezogene Objekte unterscheiden. Ein Ordnerpräfix allein ist nur eine Namenskonvention, es sei denn, die Zugriffsrichtlinie schränkt Lese- und Schreibvorgänge tatsächlich ein.

Robustere Designs können mandantenbewusste Objektschlüssel, Bucket-Richtlinien, separate Buckets/Konten oder mandantenspezifische Verschlüsselungsschlüssel verwenden, wenn Risiko oder Compliance eine stärkere Isolierung erfordern.

Signierte URLs müssen vor der Ausstellung autorisiert und auf das genaue Objekt und die genaue Operation beschränkt werden. Der Besitz einer Objektkennung sollte für sich genommen keinen mandantenübergreifenden Zugriff gewähren.

Hintergrundjobs und Warteschlangen können die Isolierung durchbrechen

Asynchrone Jobs verlassen oft den ursprünglichen HTTP-Anfragekontext, was die Weitergabe des Mandanten leicht fehleranfällig macht. Eine Warteschlangennachricht, die tenantId enthält, ist kein ausreichender Beweis dafür, dass der Produzent autorisiert war.

Der Worker sollte eine verifizierte Dienst-/Benutzeridentität oder einen vertrauenswürdigen Job-Umschlag mitführen, den Mandantenkontext wiederherstellen und folgenreiche Operationen an der Konsumentengrenze erneut autorisieren.

Mandantenisolierung umfasst auch Verfügbarkeit. Ein Mandant sollte nicht in der Lage sein, gemeinsame Worker, Warteschlangen, Verbindungspools oder Rechenleistung so zu monopolisieren, dass andere Mandanten wesentlich beeinträchtigt werden.

Suche und RAG benötigen mandantenbewussten Abruf

Multi-Mandanten-KI führt eine weitere Kopie des Isolierungsproblems ein. Dokumente können nach der Aufnahme in Chunks aufgeteilt, eingebettet und in einem Vektorindex gespeichert werden.

Die aktuelle RAG-Sicherheitsrichtlinie von OWASP besagt, dass Zugriffskontrolle zum Zeitpunkt des Abrufs durchgesetzt werden muss und dass Chunks von Mandant A nicht durch Abfragen von Mandant B abgerufen werden dürfen. Es kann nicht einfach davon ausgegangen werden, dass Berechtigungen auf Dokumentebene das Chunking automatisch überleben.

Der Vektorindex benötigt daher Mandanten-/Zugriffsmetadaten oder physisch/logisch getrennte Sammlungen gemäß dem Isolierungsdesign. Abruffilter sollten angewendet werden, bevor nicht autorisierte Inhalte in den Modellkontext gelangen können.

Abgeleitete Daten erben die Mandantensensibilität

Einbettungen, Suchindizes, Miniaturansichten, generierte Zusammenfassungen, Caches, Analysezeilen und KI-Antworten werden aus Quelldaten abgeleitet. Ihr Mandantenbereich sollte der Quelle folgen, es sei denn, eine explizite Transformation erzeugt ein legitimes gemeinsames/globales Artefakt.

Löschung und Offboarding müssen sich daher über die kanonische Zeile hinaus ausbreiten. Das Entfernen eines Mandantendokuments, während durchsuchbare Chunks oder zwischengespeicherte Zusammenfassungen verbleiben, kann eine mandantenübergreifende oder über die Aufbewahrungsfrist hinausgehende Exposition aufrechterhalten.

Nicht alles gehört zu einem Mandanten

Multi-Mandanten-Plattformen haben oft absichtlich globale Ressourcen: Produkttaxonomien, öffentliche Vorlagen, Systemberechtigungen, Funktionsdefinitionen oder öffentliche Inhalte.

Das sicherste Modell ist die explizite Klassifizierung: global, mandantenbezogen, benutzerbezogen oder explizit mandantenübergreifend. Mehrdeutige Ressourcen sind der Ausgangspunkt für versehentliche Datenlecks.

Ein absichtlich gemeinsam genutztes Objekt sollte einen dokumentierten Grund dafür haben, global zu sein, und nicht einfach keine Mandantenzuordnung besitzen.

Plattformadministratoren erfordern ein anderes Berechtigungsmodell

Ein Plattformbetreiber muss möglicherweise mehrere Mandanten für Support, Compliance oder Infrastrukturbetrieb inspizieren. Dies als gewöhnlichen Mandanten-ADMIN mit versehentlichem globalem Datenbankzugriff zu modellieren, schwächt sowohl Sicherheit als auch Auditierbarkeit.

Ein besseres Design verwendet eine eigenständige Plattformidentität oder eine explizite mandantenübergreifende Berechtigung, stärkere Authentifizierung, Zweckbindung, detaillierte Auditierung und, wo angemessen, Genehmigungs- oder Break-Glass-Kontrollen.

Mandantenübergreifender Zugriff sollte daher eine benannte Fähigkeit sein, nicht das Fehlen eines Mandantenfilters.

RBAC kann mit Attributen kombiniert werden

Einige Entscheidungen hängen von mehr als der Rolle ab. Mandantenzugehörigkeit, Region, Ressourceneigentümer, Abonnementstufe, Zeit, Projektzugehörigkeit oder Datenklassifizierung können alle den Zugriff beeinflussen.

RBAC und ABAC schließen sich nicht gegenseitig aus. Die aktuelle Multi-Tenant-Autorisierungsrichtlinie von AWS behandelt RBAC, ABAC und Hybridmodelle. Eine Rolle kann eine breite Verantwortung definieren, während Attribute einschränken, auf welche konkrete Ressourceninstanz zugegriffen werden kann.

Die zentrale Architekturregel bleibt: Kodieren Sie die Mandantenisolierung nicht nur als beiläufigen Rollennamen, wenn die Mandantenidentität eine erstklassige Ressourcengrenze ist.

Autorisierungsentscheidungen sind mindestens zweidimensional

PrinzipalRollenberechtigungMandantenbeziehungEntscheidung
Aliceorders.readBestellung gehört zum Mandanten von AliceErlauben
Aliceorders.readBestellung gehört zu einem anderen MandantenVerweigern
Aliceorders.writeBestellung gehört zum Mandanten von AliceErlauben, wenn die Rolle Schreibzugriff umfasst
Aliceorders.writeBestellung gehört zu einem anderen MandantenVerweigern
Plattform-Supportsupport.cross_tenant.readExpliziter Support-Umfang + auditierter ZielmandantPotenziell erlauben gemäß Plattformrichtlinie
Hintergrund-Workerorders.processVertrauenswürdiger Dienstumfang für den AuftragsmandantenNur für verifizierten Auftragsmandanten erlauben

Ursprüngliche Implementierungsnachweise: Aaasaasa AI CMS

Der RBAC-Dienst definiert typisierte Berechtigungscodes wie cms.content.read, shop.orders.write, billing.reconcile und users.roles. Systemrollen ordnen diese Berechtigungen benannten Verantwortungssätzen zu.

Rollendatensätze werden mit einer tenantId erstellt und aufgelöst. Systemrollen werden mithilfe einer zusammengesetzten Mandanten-/Code-Identität aktualisiert oder eingefügt, und die Rollenauflistung wird nach Mandant gefiltert.

Bei der Rollenaktualisierung und -löschung wird die Rolle zuerst anhand von Rollen-ID und Mandanten-ID aufgelöst. Benutzer-Rollen-Zuweisungen werden ebenfalls im aktuellen Mandantenkontext gespeichert und ersetzt.

Die Berechtigungsauflösung liest explizite Benutzer-Rollen-Zuweisungen, die sowohl nach tenantId als auch nach userId eingeschränkt sind. Dies verhindert, dass die Rollenzuweisung eines Mandanten automatisch zur Rollenzuweisung eines anderen Mandanten wird.

Auf API-Ebene lösen administrative RBAC-Routen einen Mandantenkontext auf, bevor Rollen erstellt oder geändert werden. Dies ist die richtige Richtung: Die Berechtigungsverwaltung selbst muss die Mandantenfähigkeit respektieren.

Beobachtetes ImplementierungsmusterSicherheitsbedeutung
Typisierte BerechtigungscodesDas Vokabular für RBAC-Operationen ist explizit
Systemrolle → BerechtigungszuordnungenRollen aggregieren Berechtigungen, anstatt Benutzer fest zu codieren
tenantId_code RollenidentitätDieselbe logische Rolle kann pro Mandant separat existieren
Rollen-Lookup verwendet id + tenantIdRollenänderung ist mandantenbezogen
Benutzer-Rollen-Beziehung speichert tenantIdMitgliedschaft wird nicht allein aus der Rolle global abgeleitet
Berechtigungsauflösung verwendet tenantId + userIdAutorisierung wird innerhalb des Mandantenkontexts bewertet

Warum diese Unterscheidung für KI-Agenten noch wichtiger ist

KI-Agenten können einen Berechtigungsfehler in eine Abfolge von Aktionen verwandeln. Wenn ein Agent ein breites orders.read-Tool ohne mandantenbezogene Durchsetzung erhält, kann ein Fehler beim Schlussfolgern oder eine Prompt-Injection zu mandantenübergreifenden Lesezugriffen mit Maschinengeschwindigkeit führen.

Agenten-Tool-Beschreibungen können Mandantenbeschränkungen erwähnen, aber die Durchsetzung muss weiterhin in der vertrauenswürdigen Laufzeit-/Service-/Datenschicht erfolgen. Natürlichsprachliche Anweisungen sind keine Autorisierungsgrenze.

Dasselbe gilt für RAG: Ein Agent kann die Berechtigung haben, das Suchtool zu verwenden, während das Such-Backend weiterhin verhindern muss, dass die Abfrage von Mandant A Chunks von Mandant B zurückgibt.

RBAC und Mandantentrennung getrennt testen

TestfamilieWas sie beweisen sollte
Rollen-HerabstufungstestEin Benutzer ohne Berechtigung kann die Operation nicht ausführen, selbst innerhalb seines eigenen Mandanten
Mandantenübergreifender ObjekttestEin Benutzer mit der richtigen Rolle kann weiterhin nicht auf denselben Ressourcentyp in einem anderen Mandanten zugreifen
Identifikator-ManipulationDas Ändern von Objekt-/Mandanten-IDs überschreitet nicht den Bereich
Listen-/Massenendpunkt-TestBreite Abfragen geben nur autorisierte Mandantendaten zurück
Cache-WiederverwendungstestZwei Mandanten, die wiederverwendete Prozesse/Verbindungen nutzen, erhalten niemals den zwischengespeicherten Zustand des jeweils anderen
RLS-Anfrage-Rollen-TestDie Produktionsanfrage-Rolle kann Zeilenrichtlinien nicht umgehen
Asynchroner Worker-TestDer Mandantenkontext überlebt die Warteschlange und wird bei der Verarbeitung erneut validiert
Vektorabruf-TestDie Abfrage von Mandant A ruft niemals Chunks von Mandant B ab
Plattform-Admin-TestMandantenübergreifende Fähigkeiten sind explizit, eng begrenzt und auditierbar
Offboarding-TestMandantendaten und abgeleitete Indizes/Caches werden gemäß Richtlinie entfernt

Die Autorisierungs-Regressionsrichtlinie von OWASP hebt speziell mandantenübergreifende Grenztests hervor, weil Codeänderungen an Caching, Abfragen oder gemeinsamen Diensten die Isolation stillschweigend brechen können, selbst wenn Rollentests weiterhin bestehen.

Häufige Fehlermodi

FehlermodusWarum er fehlschlägt
Rolle prüfen, aber nicht MandantEine gültige Rolle wird zu mandantenübergreifender Autorität
Mandanten-ID aus der Anfrage vertrauenDer Client kontrolliert den Isolationsselektor
UI einschränken, aber nicht APIVersteckte Schaltflächen schützen keine Backend-Ressourcen
Mandantenbewusster Detailendpunkt, nicht bereichsbezogener ListenendpunktMassenlesevorgänge leaken andere Mandanten
Mandantenfilter in den meisten AbfragenEin vergessener Pfad bricht die Grenze
Globale Cache-SchlüsselKorrekte Datenbankisolation wird durch zwischengespeicherte Daten umgangen
Gemeinsamer Vektorindex ohne erzwungene MetadatenfilterRAG ruft Chunks eines anderen Mandanten ab
Mandanten-ID in Warteschlangennachricht als Autorisierung behandeltEin gefälschter oder falsch erzeugter Job kann die Mandantengrenze überschreiten
Plattform-Admin als gewöhnlicher ADMIN modelliertMandantenübergreifende Macht wird implizit und schwer auditierbar
Rolle global über Mandantenmitgliedschaften kopiertBenutzer erhält Berechtigungen in Mandanten, in denen er nie zugewiesen wurde
Separate Datenbanken, aber gemeinsam genutzte privilegierte AnmeldeinformationenDie Anwendung kann weiterhin Datenbanken überschreiten, wenn ihre Anmeldeinformationen zu weit gefasst sind
RLS mit BYPASSRLS-Anfrage-RolleDie Datenbankrichtlinie existiert, schützt aber nicht den tatsächlichen Anfragepfad
Zufällige UUIDs als Isolation behandeltSchwer zu erratende Identifikatoren reduzieren Enumeration, autorisieren aber keinen Zugriff

Häufige Missverständnisse

MissverständnisKorrektur
„RBAC bietet Mandantentrennung.“RBAC steuert Berechtigungen; Isolation erfordert auch Mandanten-/Ressourcenbereich.
„Wenn der Benutzer ein Admin ist, sind Mandantenprüfungen unnötig.“Admin-Autorität muss weiterhin einen expliziten Bereich haben.
„Mandanten-ID im JWT reicht aus.“Sie kann nur dann eine vertrauenswürdige Eingabe sein, wenn sie validiert und konsistent auf jeden geschützten Ressourcenpfad angewendet wird.
„Separate Datenbanken entfernen Autorisierungsanforderungen.“Benutzer benötigen weiterhin Berechtigungen auf Operationsebene innerhalb ihres Mandanten.
„Eine tenant_id-Spalte bedeutet, dass das System isoliert ist.“Das Feld hilft nur, wenn Zugriffspfade es durchsetzen.
„UUIDs verhindern mandantenübergreifenden Zugriff.“Unvorhersehbare Identifikatoren sind Defense in Depth, keine Autorisierung.
„RLS bedeutet, dass Anwendungscode keine Sicherheitsprüfungen benötigt.“Anwendungsautorisierung, korrekte DB-Rollen und Richtlinienabdeckung sind weiterhin wichtig.
„Eine gemeinsame Vektor-DB ist unsicher.“Sie kann sicher sein, wenn Isolation durchsetzbar und verifiziert ist; physische Trennung ist eine Option, nicht die einzige.
„Plattform-Support benötigt globales ADMIN.“Mandantenübergreifender Support sollte eine eigenständige, eingeschränkte und auditierbare Autorität sein.
„Interne Dienste können Mandantenprüfungen überspringen.“Interne Pfade können weiterhin kompromittiert oder falsch konfiguriert sein und müssen den Mandantenkontext bewahren.

Eine praktische Entwurfssequenz

Berechtigungen und Isolation als separate Dimensionen entwerfen

1
1. Mandanteneigentum definieren
Klassifizieren Sie, welche Entitäten und Ressourcen global, mandantenbezogen, benutzerbezogen oder absichtlich mandantenübergreifend sind.
2
2. Operationen definieren
Erstellen Sie explizite Berechtigungen für Lesevorgänge, Schreibvorgänge, Veröffentlichung, Genehmigungen, Administration und andere Geschäftsaktionen.
3
3. Rollen definieren
Gruppieren Sie Berechtigungen nach Verantwortlichkeiten, ohne versehentlich globalen Bereich einzubetten.
4
4. Mitgliedschaftsbereich definieren
Binden Sie Rollenzuweisungen an den Mandanten-/Workspace-/Projektkontext, in dem sie gelten.
5
5. Vertrauenswürdigen Mandantenkontext auflösen
Leiten Sie die Mandantenidentität aus authentifizierter, serverseitig verifizierter Mitgliedschaft oder Dienstautorisierung ab.
6
6. Ressourceneigentum durchsetzen
Wenden Sie den Mandantenbereich an jeder mandanteneigenen Daten-/Dienstgrenze an.
7
7. Defense in Depth hinzufügen
Verwenden Sie RLS, separate Anmeldeinformationen, Schemas/Datenbanken, Speicherrichtlinien oder Richtlinien-Engines, wo das Risiko sie rechtfertigt.
8
8. Bereich durch abgeleitete Systeme tragen
Bewahren Sie Mandantenmetadaten in Cache, Suche, Vektorindizes, Warteschlangen, Dateien und Analysen.
9
9. Mandantenübergreifende Operationen explizit modellieren
Trennen Sie Plattformadministration und Dienstidentitäten von gewöhnlichen Mandantenrollen.
10
10. Beide Achsen testen
Führen Sie Negativtests für fehlende Berechtigung und für falschen Mandanten unabhängig voneinander durch.
11
11. Mandant + Berechtigung zusammen auditieren
Protokollieren Sie, wer gehandelt hat, in welchem Mandanten, auf welches Ziel und unter welcher Autorität.
12
12. Nach Schema-/Laufzeitänderungen erneut testen
Isolation kann brechen, wenn neue Tabellen, Caches, Warteschlangen oder Abrufpfade eingeführt werden.

RBAC + Mandantentrennungs-Checkliste

FrageErwartete Antwort
Wer ist der Prinzipal?Authentifizierte Benutzer-/Dienst-/Agentenidentität
Welcher Mandantenkontext gilt?Serverseitig verifizierte Mitgliedschaft oder Dienstbereich
Welche Operation wird angefordert?Typisierte Berechtigung oder Richtlinienaktion
Hat der Prinzipal diese Berechtigung?Rollen-/Richtlinienentscheidung
Wem gehört die Zielressource?Explizite Mandanten-/Global-/Benutzerklassifizierung
Entspricht der Ressourcenbereich der Autorität?Mandantenbewusster Lookup/Richtlinie
Kann der Speicher Anwendungsprüfungen umgehen?Defense-in-Depth-Entscheidung dokumentiert
Sind Caches mandantensicher?Schlüssel/Namespaces und Autorisierung bewahren den Mandantenbereich
Sind Dateien/Blobs mandantensicher?Objektrichtlinie und Ausstellung signierter URLs erzwingen den Bereich
Sind asynchrone Jobs mandantensicher?Verifizierter Kontext wird weitergegeben und erneut validiert
Ist RAG/Suche mandantensicher?Metadaten-/Sammlungsisolation wird vor dem Modellkontext erzwungen
Sind mandantenübergreifende Admins explizit?Separate Autorität, Kontrollen und Audit
Können gewöhnliche Anmeldeinformationen die Isolation umgehen?Nein, oder eng dokumentierter Ausnahmepfad
Sind negative mandantenübergreifende Tests automatisiert?Ja für jede relevante Zugriffsebene

Edge Cases und Einschränkungen

Ein Benutzer kann mehreren Mandanten angehören. Der aktuelle Mandant sollte daher ein expliziter Ausführungskontext sein und nicht dauerhaft aus dem Benutzerkonto abgeleitet werden.

Einige Ressourcen werden absichtlich zwischen ausgewählten Mandanten geteilt, wie z. B. Kollaborationsräume oder Konsortialdaten. Dies erfordert ein explizites Freigabemodell; vorzugeben, die Ressource gehöre zu einem Mandanten, und später Ausnahmen hinzuzufügen, führt in der Regel zu mehrdeutiger Autorisierung.

Noisy-Neighbor-Isolation ist verwandt, aber anders als Vertraulichkeitsisolation. Ein Mandant darf niemals die Daten eines anderen Mandanten sehen und kann dennoch gemeinsame CPU, Warteschlangenkapazität oder Datenbankverbindungen erschöpfen. Rate Limits und Ressourcenkontingente können daher als Verfügbarkeitsgrenze mandantenbewusst sein.

Physische Isolation ist nicht automatisch sicher, wenn Control-Plane-Anmeldeinformationen oder administrative Pfade Grenzen überschreiten können. Logische Isolation ist nicht automatisch schwach, wenn Richtlinien zentral durchgesetzt, mit minimalen Rechten versehen und gründlich getestet werden.

Die Anforderungen an die Mandantenisolation können je nach Datenklasse unterschiedlich sein. Öffentliche Katalogdaten, Abrechnungsdatensätze und private KI-Dokumente können unterschiedliche Speicher- und Verschlüsselungsgrenzen innerhalb desselben SaaS-Produkts rechtfertigen.

Was würde diese Antwort ändern?

Die genaue Implementierung ändert sich mit der Architektur: Serverless-APIs, Kubernetes, PostgreSQL, Objektspeicher, Vektordatenbanken und Policy Engines bieten unterschiedliche Isolationsprimitive.

Die erforderliche Stärke ändert sich auch mit Regulierung, Kundenverträgen, Datensensibilität, Bedrohungsmodell und operativer Skalierung. Einige Mandanten können isolierte Datenbanken oder Infrastruktur rechtfertigen, während andere gemeinsam genutzte Ressourcen teilen.

Die konzeptionelle Unterscheidung ändert sich nicht: Die Berechtigung zur Durchführung einer Operation ist nicht dasselbe wie die Berechtigung, eine Mandantengrenze zu überschreiten.

Verwandtes kanonisches Wissen

S01 ist eine Voraussetzung für Sicherheitsgrenzen in Enterprise AI Architecture und AI Governance. Sobald KI-Tools, RAG oder Agenten über mandantenfähige Daten arbeiten, muss die Mandantenidentität durch Retrieval, Tool-Ausführung, Speicher, Caches und Audit-Traces wandern.

Es verbindet sich auch direkt mit Agentic AI: Tool-Fähigkeiten und Rollenberechtigungen müssen weiterhin durch den Mandantenbesitz eingeschränkt werden, bevor ein Agent Geschäftsressourcen lesen oder verändern kann.

Für RAG muss die Mandantenisolation durchgesetzt werden, bevor geschützte Chunks den Modellkontext erreichen.

Häufig gestellte Fragen

RBAC vs Mandantenisolation FAQ

Was ist der Unterschied zwischen RBAC und Mandantenisolation?

RBAC bestimmt, welche Operationen ein Prinzipal ausführen darf. Mandantenisolation bestimmt, auf welche Ressourcen welches Mandanten diese Operationen zugreifen dürfen. Sichere mandantenfähige Anwendungen benötigen normalerweise beides.

Erlaubt eine ADMIN-Rolle automatisch den Zugriff auf alle Mandanten?

Nein. ADMIN sollte einen expliziten Geltungsbereich haben. Ein Mandantenadministrator hat normalerweise nur innerhalb dieses Mandanten umfassende Berechtigungen, während mandantenübergreifende Plattformadministration separat modelliert werden sollte.

Reicht Authentifizierung für die Mandantenisolation aus?

Nein. Authentifizierung beweist Identität. Autorisierung kontrolliert erlaubte Aktionen. Mandantenisolation verhindert zusätzlich, dass diese Aktionen die Ressourcen des falschen Mandanten erreichen.

Sollte tenantId im JWT gespeichert werden?

Es kann eine Eingabe für den Mandantenkontext sein, aber der Server muss die aktuelle Mitgliedschaft/Berechtigung überprüfen und den Geltungsbereich an geschützten Ressourcengrenzen durchsetzen. Ein Anspruch allein ersetzt keine Isolationskontrollen.

Brauche ich eine separate Datenbank pro Mandant?

Nicht unbedingt. Gemeinsame Tabellen, RLS, Schema-, Datenbank-, Infrastruktur- und hybride Isolationsmodelle können je nach Risiko und betrieblichen Anforderungen alle gültig sein.

Kann PostgreSQL RLS Mandantenfilters im Anwendungscode ersetzen?

RLS kann eine starke Verteidigung in der Tiefe bieten, aber korrekte Datenbankrollen, Anforderungskontext, Richtlinienabdeckung und Autorisierung auf Anwendungsebene sind weiterhin wichtig.

Wie sollte RAG die Mandantenisolation durchsetzen?

Der Mandanten-/Zugriffsbereich sollte während des Retrievals durchgesetzt werden, damit nicht autorisierte Chunks niemals in den Modellkontext gelangen. Bewahren Sie Zugriffsmetadaten durch Chunking und Indexierung.

Kann ein Benutzer in verschiedenen Mandanten unterschiedliche Rollen haben?

Ja. Dies ist in B2B-SaaS üblich und ein starker Grund, Rollenzuweisungen nach Mandantenzugehörigkeit zu skalieren, anstatt Rollen als global an den Benutzer gebunden zu behandeln.

Was ist der beste Test für Mandantenisolation?

Verwenden Sie negative mandantenübergreifende Tests: Erstellen Sie mindestens zwei Mandanten, geben Sie einem Benutzer gültige Berechtigungen in einem Mandanten und beweisen Sie dann, dass jeder geschützte Pfad den Zugriff auf die Ressourcen des anderen Mandanten verweigert.

Glossar

Wichtige Begriffe der mandantenfähigen Sicherheit

RBAC
Role-Based Access Control: ein Autorisierungsmodell, das Berechtigungen mit Rollen verknüpft und Benutzer oder Prinzipale diesen Rollen zuweist.
Mandant
Ein Kunde, eine Organisation, ein Arbeitsbereich oder ein anderer isolierter logischer Konsument eines gemeinsam genutzten mandantenfähigen Systems.
Mandantenisolierung
Mechanismen, die verhindern, dass ein Mandant auf die Ressourcen eines anderen Mandanten in einem gemeinsam genutzten System zugreift, sie ändert oder erhält.
Authentifizierung
Überprüfung der Identität eines Benutzers, Dienstes oder eines anderen Prinzipals.
Autorisierung
Entscheidungsprozess, der festlegt, ob ein Prinzipal eine angeforderte Operation an einer Ressource ausführen darf.
Berechtigung
Eine definierte erlaubte Operation oder Fähigkeit wie orders.read oder users.write.
Rolle
Eine benannte Gruppierung von Berechtigungen, die einer Verantwortlichkeit oder Funktion zugeordnet ist.
ABAC
Attribute-Based Access Control: Autorisierung basierend auf Attributen des Prinzipals, der Ressource, der Aktion oder der Umgebung.
Row-Level Security
Datenbankrichtlinienmechanismus, der einschränkt, welche Zeilen eine Datenbankrolle oder Sitzung lesen oder ändern darf.
Mandantenübergreifender Zugriff
Jeder Zugriffspfad, bei dem ein Prinzipal, der unter einem Mandantenkontext arbeitet, Ressourcen erreicht, die einem anderen Mandanten gehören.
Plattformadministrator
Eine privilegierte operative Identität mit explizit modellierter Autorität, die mehrere Mandanten umfassen kann.
Mandantenkontext
Der verifizierte Mandantenbereich, unter dem die aktuelle Anfrage, der Job oder die Agentenoperation ausgeführt wird.

Fazit

RBAC und Mandantenisolierung sind komplementäre, nicht konkurrierende Sicherheitsmechanismen. RBAC strukturiert operative Berechtigungen; Mandantenisolierung beschränkt die Ressourcengrenze, innerhalb derer diese Berechtigung gelten kann.

Eine robuste mandantenfähige Anfrage benötigt daher mehr als „Benutzer hat Rolle ADMIN“. Sie benötigt einen verifizierten Prinzipal, einen verifizierten Mandantenkontext, eine erlaubte Operation, ein mandantenbezogenes Ziel und Durchsetzung auf jeder Ressourcenschicht, die mandanteneigene Daten tragen kann.

Die kürzeste zuverlässige Regel lautet: Autorisieren Sie die Aktion, dann isolieren Sie den Bereich — und nehmen Sie niemals an, dass eines das andere beweist.

Primärquellen und aktuelle Leitlinien

Die folgenden Quellen stützen die RBAC-Definition und die aktuellen Leitlinien zur Mandantenisolierung. Der Abschnitt zum Aaasaasa AI CMS ist ursprüngliche Implementierungsnachweis und ist absichtlich auf die verifizierten Codemuster beschränkt.

NIST — Role Based Access Control

NIST-Überblick über RBAC-Modelle und den INCITS-RBAC-Standard, einschließlich Benutzer, Rollen, Berechtigungen, Operationen und Objekte.

NIST CSRC — RBAC-Glossar

Aktuelle NIST-Glossardefinitionen von rollenbasierter Zugriffskontrolle als Berechtigungszuweisung durch Rollen.

AWS — Die Isolationsmentalität

AWS-SaaS-Leitlinien, die ausdrücklich Authentifizierung/Autorisierung von Mandantenisolierung unterscheiden und gemeinsame Isolationsmechanismen empfehlen.

AWS — FAQ zur mandantenfähigen Autorisierung

Aktuelle Leitlinien, die den Unterschied zwischen Autorisierung und Mandantenisolierung in SaaS-Anwendungen erklären.

AWS — Überlegungen zum mandantenfähigen Design

Aktuelle SaaS-Leitlinien, die Mandantenisolierung von Autorisierung unterscheiden und pooled/siloed Autorisierungsrichtlinienmodelle diskutieren.

OWASP — Multi-Tenant Application Security Cheat Sheet

Aktuelle praktische Leitlinien für Mandantenkontext, Datenbankisolierung, Caches, Speicher, Warteschlangen, Tests und Verhinderung mandantenübergreifenden Zugriffs.

OWASP — RAG Security Cheat Sheet

Aktuelle Leitlinien, die Zugriffskontrolle zum Abrufzeitpunkt und Mandantenisolierung für mandantenfähige Vektorspeicher erfordern.

OWASP — Autorisierungs-Regressionstests

Aktuelle Testleitlinien einschließlich Rollenherabsetzung und mandantenübergreifenden Grenztests.

Related Articles

Wie man erkennt, ob ein KI-Agent tatsächlich die richtigen Belege verwendet hat

Wie man erkennt, ob ein KI-Agent tatsächlich die richtigen Belege verwendet hat

Ein KI-Agent kann Quellen zitieren und trotzdem die falschen Belege verwenden. Dieser Artikel stellt eine praktische Methode zur Überprüfung der Belegung von Behauptungen, der Quellenautorität, der Anwendbarkeit, der Herkunft sowie der Frage vor, ob die Belege die Antwort tatsächlich beeinflusst haben.

MCP erklärt: Was es verbindet, was es nicht tut und wo es passt

MCP erklärt: Was es verbindet, was es nicht tut und wo es passt

Das Model Context Protocol verbindet KI-Anwendungen über eine standardisierte Client-Server-Grenze mit externen Tools, Ressourcen und Prompts. Erfahren Sie, was MCP tut, was es nicht tut und wo es in der Agentenarchitektur einzuordnen ist.

Warum mehr Kontext KI-Antworten verschlechtern kann

Warum mehr Kontext KI-Antworten verschlechtern kann

Ein größeres Kontextfenster garantiert keine bessere Antwort. Dieser Artikel erklärt, wie Signalverwässerung, widersprüchliche Belege, veralteter Zustand, Positionssensitivität und verlustbehaftete Kompression die KI-Zuverlässigkeit verringern können—und stellt einen praktischen Context Pressure Test vor.

Vektordatenbanken, Embeddings und Reranking: Drei verschiedene Teile des Retrievals

Vektordatenbanken, Embeddings und Reranking: Drei verschiedene Teile des Retrievals

Embeddings repräsentieren Bedeutung, Vektordatenbanken rufen Kandidaten ab und Reranker verfeinern Ergebnisse. Erfahren Sie, wie sich diese drei Retrieval-Ebenen unterscheiden und in RAG zusammenwirken.

Souveräne KI: Kontrolle über Modelle, Daten, Infrastruktur und Abhängigkeiten

Souveräne KI: Kontrolle über Modelle, Daten, Infrastruktur und Abhängigkeiten

Souveräne KI bedeutet wirksame Kontrolle über Modelle, Daten, Infrastruktur, Software, Betrieb und strategische Abhängigkeiten – nicht einfach, wo ein KI-Modell gehostet wird.

Was ist Context Engineering? Was das Modell erhält, bevor es antwortet

Was ist Context Engineering? Was das Modell erhält, bevor es antwortet

Context Engineering gestaltet, welche Informationen ein KI-Modell vor der Inferenz erhält, einschließlich Prompts, Retrieval, Speicher, Anwendungszustand, Tool-Ergebnissen und Konversationsverlauf.

Wahrheitsquelle in KI-Systemen: Woher verlässliches Wissen tatsächlich stammt

Wahrheitsquelle in KI-Systemen: Woher verlässliches Wissen tatsächlich stammt

Eine Quelle der Wahrheit definiert, welche Quelle für einen bestimmten Fakt oder Zustand maßgeblich ist. Erfahren Sie, wie sie sich von RAG, Provenienz, Gedächtnis, Kontext, Vektordatenbanken und Systemen of Record unterscheidet.

Agentische KI erklärt: Wenn ein KI-System planen, Werkzeuge nutzen und handeln kann

Agentische KI erklärt: Wenn ein KI-System planen, Werkzeuge nutzen und handeln kann

Agentische KI verwendet Modelle innerhalb mehrstufiger Ausführungsschleifen, in denen sie Werkzeuge auswählen, Ergebnisse beobachten, den Zustand aktualisieren und ihre nächste Aktion innerhalb expliziter Laufzeit- und Berechtigungsgrenzen anpassen können.

Was ist ein KI-Lösungsarchitekt? Systemgrenzen, Verantwortlichkeiten und Kompromisse

Was ist ein KI-Lösungsarchitekt? Systemgrenzen, Verantwortlichkeiten und Kompromisse

Ein KI-Lösungsarchitekt verwandelt Geschäftsanforderungen in ein produktionsreifes KI-System über Daten, Modelle, Tools, Sicherheit, Laufzeit, Evaluierung und Betrieb hinweg.

KI-Agenten-Gedächtnis ist kein RAG: Wie man Gedächtnis, Retrieval, Zustand und Kontext voneinander trennt

KI-Agenten-Gedächtnis ist kein RAG: Wie man Gedächtnis, Retrieval, Zustand und Kontext voneinander trennt

Agentengedächtnis, RAG, Zustand und Kontext werden oft so verwendet, als wären sie austauschbar. Das sind sie nicht. Dieses praktische Architekturmodell trennt die vier Schichten, zeigt, wohin jede gehört, und erklärt, was kaputtgeht, wenn Systeme sie zu einer einzigen zusammenfassen.

Wann sollte eine KI aufhören, ihrem eigenen Wissen zu vertrauen? — Der Retrieval-Trigger

Wann sollte eine KI aufhören, ihrem eigenen Wissen zu vertrauen? — Der Retrieval-Trigger

Ein KI-Modell benötigt nicht für jede Frage einen Retrieval. Das wichtige Problem ist zu erkennen, wann sein internes Wissen nicht mehr ausreicht. Der Retrieval-Trigger ist eine praktische Entscheidungsgrenze, die bestimmt, wann ein KI-System aufhören sollte, sich allein auf das Modellwissen zu verlassen, und vor der Beantwortung externe Evidenz einholen sollte.

Was ist RAG? Die einfachste Erklärung, wie es funktioniert

Was ist RAG? Die einfachste Erklärung, wie es funktioniert

RAG klingt kompliziert, aber die Idee ist einfach: Bevor eine KI antwortet, sucht sie zunächst nützliche Informationen aus einer Wissensquelle und gibt diese Informationen an das Sprachmodell weiter. Dieser Leitfaden erklärt RAG, LLMs, Zustand, Gedächtnis und Werkzeuge anhand eines einfachen mentalen Modells.