Zurück
Kevin Riedl

14 min Lesezeit · 11. Juni 2026
Zuletzt geprüft

Weiter
Entsteht auf deinem Gerät, ohne Instagram-Verbindung. Den Beitragslink kopieren wir für deinen Link-Sticker.

RAG über SharePoint, Confluence und Google Drive: Permissions-First-Architektur

Das harte Problem in Enterprise-RAG sind Berechtigungen: Der Assistent darf ein Dokument niemals an Personen ausspielen, die es nicht sehen dürfen. Ein Embedding trägt oder erzwingt die Autorisierung des Quellsystems nicht von selbst. Erzwinge den Zugriff deshalb vor der Generierung: Führe quellnativen Zugriffskontext je Chunk mit oder nutze eine maßgebliche Nachschlagetabelle und prüfe jeden Treffer, bevor er das Modell erreicht. Reduziere direkte Nutzer, Gruppen, Domains, Links, Vererbung und Schutzmechanismen nicht auf ein universelles Gruppen- oder Deny-wins-Modell.

Dies ist der Implementierungs-Begleiter zu unserer RAG-Production-Readiness-Checkliste, die Per-User-Berechtigungen als das harte Sicherheitsproblem benennt. Dieser Beitrag zeigt, wie du es tatsächlich löst. Anbieterspezifische und Preview-Funktionen ändern sich schnell; prüf die verlinkten Docs erneut, bevor du baust.

Baust du einen RAG-Assistenten über deinen Dokumentenspeichern?

 Kostenloses Beratungsgespräch buchen

Warum Berechtigungen der schwierige Teil sind

Das Fehlerszenario in einem Satz: Das Modell formuliert eine flüssige Antwort, die auf einem Dokument basiert, das der anfragende Nutzer nie sehen durfte, weil das Retrieval auf semantische Ähnlichkeit gematcht hat und nicht auf Autorisierung. Sobald ein Dokument gechunkt und in einen gemeinsamen Index embedded ist, wandern die Eigentümer, Zugriffsstufen und Sensitivitätskennzeichnungen des Quellsystems nicht mit dem Vektor mit, sofern du sie nicht bewusst mitführst. Ein Vektorspeicher hat kein Konzept davon, wer fragt.

Microsoft dokumentiert, dass Microsoft 365 Copilot nur Daten nutzt, auf die der angemeldete Nutzer zugreifen darf, und SharePoint-Kontrollen sowie verschlüsselte Sensitivitätskennzeichnungen respektiert. Bereits übermäßig geteilte Inhalte können dadurch trotzdem leichter auffindbar werden. Restricted Content Discovery ist eine temporäre SharePoint-Kontrolle mit dokumentierten Grenzen; Data Access Governance hilft bei der Berechtigungsanalyse. Beides ersetzt keine korrekten Quellberechtigungen. (1, 2)

Dem Modell zu sagen, ein Dokument nicht preiszugeben, ist keine Zugriffskontrolle. OWASP führt Prompt Injection aktuell als LLM01, und NIST beschreibt indirekte Injection über abgerufene Inhalte. Vertrauenswürdige Anwendungs- oder Datenlogik muss autorisieren, bevor Inhalte das Modell erreichen. (3)

Das Prinzip: auf der Retrieval-Ebene durchsetzen

Der Vektorspeicher darf ein unautorisiertes Dokument gar nicht erst zurückgeben, und das Modell darf es nie verarbeiten. Das erreichst du, indem du jeden Chunk zur Index-Zeit mit normalisierten, versionierten ACL-Metadaten taggst und zur Retrieval-Zeit einen Berechtigungsfilter in die Query einbaust. Das Filtern nach dem Retrieval, auf der Anwendungsebene oder im Prompt, scheitert auf zwei Wegen: Es verschwendet das Kontextfenster, indem es Dokumente abruft, nur um sie wieder zu verwerfen, und wenn die App-Logik einen Bug hat oder durch eine Injection umgangen wird, fließen die Dokumente trotzdem durch. Post-Filtering bricht außerdem leise den Recall, denn das Herausstreichen unautorisierter Chunks aus einem Top-k-Set kann dem Modell nichts mehr lassen, wenn die autorisierten Ergebnisse knapp außerhalb von k lagen. Filtere bereits bei der Suche vor, oder ruf ein Vielfaches von k ab und filtere dann.

Berechtigungsmodelle pro Quelle

Jede Quelle hat eigene Principals, Vererbungsregeln, Freigabelinks und Schutzmechanismen. Nutze eine dedizierte Connector-Identität mit den geringsten nötigen Rechten und dem kleinsten genehmigten Repository-Scope. Normalisiere für effizientes Retrieval, erhalte aber genug quellnative Fakten für die effektive Autorisierungsentscheidung.

QuelleWie Berechtigungen funktionierenDie Falle, die du behandeln musst
SharePoint / OneDrive (Microsoft Graph)DriveItem-Berechtigungen können direkt oder geerbt sein; nutze inheritedFrom und die grantedToV2-FelderGraph-Freigaben sind nur ein Teil der Entscheidung. Site-Mitgliedschaft, Links, gebrochene Vererbung und Label-Verschlüsselung können den Zugriff ebenfalls bestimmen. (4)
Confluence CloudLesen erfordert Produkt- und Space-Zugriff sowie alle anwendbaren Page-Restrictions; View-Restrictions vererben sichEine direkte Restriktionsantwort beweist keinen effektiven Zugriff. Prüfe eingeschränkte Vorfahren. Öffentliche Links können normale Restriktionen umgehen und brauchen eine explizite Richtlinie. (5)
Google DrivePrincipal-Typen sind user, group, domain und anyone; Rollen umfassen owner, organizer, fileOrganizer, writer, commenter und readerBerechtigungen werden normalerweise nach unten vererbt. Direkte Rechte können Zugriff erhöhen, Limited-Access-Ordner können geerbten Zugriff jedoch einschränken. (6)

Programmiere bei Microsoft Graph gegen grantedToV2 und grantedToIdentitiesV2; die älteren Felder sind deprecated. Wähle die geringsten passenden delegierten oder Application-Berechtigungen und bevorzuge, wo möglich, ressourcenbezogene Selected-Site-Rechte gegenüber tenantweitem Lesezugriff. (4)

Implementierungsmuster, die halten

  • Speichere stabile, quellnative Principals. Gruppen senken die Kardinalität, aber direkte Nutzerrechte, Domain- und Anyone-Links, geerbte Restriktionen und Schutzstatus können ebenfalls entscheidend sein.
  • Binde jede Query an den angemeldeten Nutzer. Nutze unveränderliche Subject- und Tenant-IDs und löse effektive Rechte auf oder frage die Quelle. Microsofts On-Behalf-Of-Flow transportiert delegierte Nutzerrechte, keine Application Roles; Google und Atlassian brauchen eigene Delegationsmodelle. (8)
  • Erzwinge Autorisierung im Retrieval. Nutze Mengenfilter für additive Regeln und explizite Prüfungen für Vorfahren, Limited Access, Links und Verschlüsselung. Eine universelle Deny-wins-Regel gibt es hier nicht.
  • Behandle das Entra-Groups-Overage. Microsoft dokumentiert 200 Gruppen für JWT-Claims und 150 für SAML. Darüber wird die Gruppenliste ausgelassen und ein Overage-Hinweis geliefert; die Anwendung muss vor der Autorisierung die vollständige Mitgliedschaft ermitteln. (7)
  • Postgres Row-Level Security kann den Filter nahe an pgvector erzwingen, ist aber nicht unumgehbar. Superuser, Rollen mit BYPASSRLS und normalerweise Tabellen-Owner umgehen RLS. Nutze unprivilegierte App-Rollen, bei Bedarf FORCE ROW LEVEL SECURITY und transaktionslokale Request-Identität. (9)

Es gibt eine echte Gabelung in den Empfehlungen, die man benennen sollte. Ein Lager (darunter AWS) argumentiert, dass Metadatenfilterung zur Query-Zeit allein nicht ausreicht und du die Autorisierung beim Retrieval erneut gegen die Quelle prüfen solltest, weil synchronisierte Metadaten veralten. Das andere (darunter Microsofts Referenzmuster) synchronisiert ACLs in den Index und setzt sie zur Query-Zeit mit dem Token des Nutzers durch, des Durchsatzes wegen. Es ist ein echter Trade-off: Aktualität gegen Latenz. Wähl nach der Sensibilität der Daten.

Das Aktualitätsproblem, das niemand einplant

Materialisierte Berechtigungen spiegeln einen quellseitigen Entzug nicht automatisch im Index. Change-Feeds sind Signale, kein Beweis, dass der effektive Zugriff aller Nachfahren neu berechnet wurde. Google dokumentiert ACL-Einträge im Nutzer-Change-Log nur für Owner, Service-Accounts auf der ACL oder direkt betroffene Nutzer; bei Shared Drives ist der passende Shared-Drive-Log zu verwenden. Kombiniere inkrementelle Ereignisse mit periodischer Reconciliation und einer fail-closed Aktualitätsschwelle. (10)

Löschung ist die andere Hälfte. Wenn eine DSGVO-Löschpflicht greift und abgeleitete Chunks, Embeddings, Caches oder Logs weiterhin personenbezogene Daten sind, musst du sie unter Beachtung der gesetzlichen Gründe und Ausnahmen löschen oder anonymisieren. Embeddings sind nicht kategorisch personenbezogen. Ein veröffentlichter Angriff rekonstruierte in einem spezifischen White-Box-Setup mit zwei Modellen 92 Prozent von 32-Token-Eingaben exakt. Das belegt ein reales Risiko, aber keine universelle Rekonstruktionsrate. (11, 12)

DSGVO und Datenresidenz

Datenminimierung und Speicherbegrenzung sprechen für einen begrenzten Korpus und kurze Aufbewahrung abgeleiteter Artefakte. Retrieval-Audit-Logs helfen bei Rechenschaft und Incident-Analyse, können aber selbst personenbezogene Daten enthalten und müssen minimiert, geschützt und gelöscht werden. Handelt der Modellanbieter als Auftragsverarbeiter, verlangt Artikel 28 passende Vertragsbedingungen; Kapitel V regelt Drittlandtransfers. Ein EU-Inferenz-Endpunkt allein belegt keine vollständige EU-Datenresidenz. Prüfe Datenfluss, Supportzugriff, Speicherung und Unterauftragsverarbeiter. Mehr dazu: EU-Datenresidenz für KI-Apps im Jahr 2026. (11)

Die Referenzarchitektur, und die Anti-Pattern

End-to-End: Ingestiere jede Quelle mit einer Identität, die alle Inhalte und ACLs lesen kann; extrahiere die effektive ACL pro Element (unter Beachtung gebrochener Vererbung, Durchlaufen der Confluence-Vorfahren, Lesen der Drive-Vererbung); chunke, embedde und häng die normalisierte versionierte ACL als filterbares Metadatum an jeden Chunk; ruf mit der Endnutzer-Identität und einem verpflichtenden Berechtigungsfilter ab; generiere nur aus autorisierten Chunks; logge jede Entscheidung; und betreibe eine Aktualitäts-Schleife aus den Change-Feeds der Quelle mit explizitem Resync für vererbte Änderungen und kaskadierenden Löschungen bis zu Chunks und Embeddings.

Anti-Pattern sind ein gemeinsamer Index ohne verpflichtende Autorisierung; Prompt-only-Filterung; Retrieval als breit berechtigter Service-Account; Gruppen zu speichern, aber direkte Nutzer und Links zu verwerfen; alle Produkte auf eine Deny- oder Grant-Regel zu reduzieren; direkte Confluence-Restrictions als effektiven Zugriff zu behandeln; bei Drive nur wachsenden Zugriff anzunehmen; SharePoint-Label-Verschlüsselung zu ignorieren; veraltete Autorisierung unbegrenzt zu akzeptieren; und personenbezogene Ableitungen ohne Rechtsgrund zurückzubehalten.

Kevin Riedl

"Das Modell ist nicht deine Zugriffskontrolle, und der Prompt ist nicht deine Sicherheitsgrenze. Wenn ein Nutzer ein Dokument nicht lesen darf, darf der Vektorspeicher es nie zurückgeben. Alles andere, die Labels, die Aktualität, das Audit-Log, steht im Dienst dieser einen Regel."

Häufig gestellte Fragen

Wie setzt du Berechtigungen in RAG durch?
Führe quellnativen Autorisierungskontext je Chunk mit oder halte eine maßgebliche Nachschlagetabelle, binde Retrieval an den angemeldeten Nutzer und prüfe jeden Treffer, bevor er das Modell erreicht. Berücksichtige direkte Nutzer, Gruppen, Links, Vererbung und Schutzmechanismen.
Respektiert RAG SharePoint-Berechtigungen?
Nicht automatisch. Ein eigenes RAG-System muss direkte und geerbte Berechtigungen, Links, Site-Zugriff und Label-Verschlüsselung abbilden und vor der Generierung trimmen. Microsoft dokumentiert, dass Microsoft 365 Copilot den bestehenden Zugriff des angemeldeten Nutzers respektiert.
Was ist Security Trimming in RAG?
Das Entfernen von Ergebnissen, die der aktuelle Nutzer nicht sehen darf. Early-Binding-Security-Trimming wendet das Set erlaubter Principals des Nutzers als verpflichtenden Filter an der Suche an, sodass unautorisierte Dokumente nie zurückgegeben werden, im Gegensatz zum Post-Filtering, das erst abruft und dann verwirft und sowohl langsamer als auch leak-anfällig ist.
Wie implementierst du Per-User-Berechtigungen in RAG?
Binde jede Query an unveränderliche Nutzer- und Tenant-IDs, löse effektive Rechte nach dem Delegationsmodell der Quelle auf und autorisiere vor dem Modellkontext. Microsofts On-Behalf-Of-Flow ist eine Option für delegierte Nutzer, kein universelles Muster für Google oder Atlassian.
Soll ich Nutzer-IDs oder Gruppen-IDs an jedem Chunk speichern?
Speichere jeden Principal-Typ, der den Zugriff beeinflusst. Gruppen senken die Kardinalität, aber direkte Nutzerrechte, Domain- oder Anyone-Links, geerbte Restriktionen und Schutzstatus können ebenso entscheidend sein.
Wie halte ich Berechtigungen aktuell, damit ich nach einem Entzug nicht leake?
Nutze Change-Feeds der Quelle (Google Drives Changes-API, SharePoint-Delta plus Indexer, Confluence-Polling) für inkrementellen ACL-Sync und synchronisiere vererbte oder Parent-Scope-Änderungen explizit nach, den üblichen Blindspot. Materialisiere entweder schneller mit Webhooks oder führe zur Query-Zeit eine Live-Last-Mile-Autorisierungsprüfung durch.
Kann ich dem Modell nicht einfach sagen, eingeschränkte Dokumente nicht preiszugeben?
Nein. OWASP führt Prompt Injection als LLM01, und NIST beschreibt indirekte Injection über abgerufene Inhalte. Zugriffskontrolle gehört in vertrauenswürdige Retrieval- oder Datenlogik.
Kann pgvector Per-User-Zugriff durchsetzen?
Postgres RLS kann ein Prädikat nahe an den pgvector-Daten erzwingen, aber Superuser, BYPASSRLS-Rollen und normalerweise Tabellen-Owner umgehen es. Nutze unprivilegierte App-Rollen, getestete Policies und transaktionslokale Identität.
Sind Dokument-Embeddings personenbezogene Daten unter der DSGVO?
Sie können es sein, wenn sie sich auf eine identifizierbare Person beziehen, sind es aber nicht kategorisch. Prüfe Inhalt, Verknüpfbarkeit, Inversionsrisiko, Zweck, Aufbewahrung und Löschpflichten für abgeleitete Daten.
Wie unterscheidet sich die Confluence-Berechtigungs-Ingestion?
Effektives Lesen erfordert Produkt- und Space-Zugriff sowie jede anwendbare direkte oder geerbte Page-Restriction. Eine direkte API-Antwort ist keine effektive Zugriffsentscheidung. Prüfe Vorfahren und behandle öffentliche Links separat.

Fazit

Enterprise-RAG steht und fällt mit einer Regel: Darf ein Nutzer ein Dokument nicht lesen, darf das Modell es nie sehen. Embeddings erzwingen keine Quellautorisierung, Prompts sind keine Sicherheitsgrenze, und synchronisierte Rechte schaffen ein Widerrufsfenster.

Bewahre die effektive Zugriffssemantik jeder Quelle, autorisiere jeden Treffer vor der Generierung, arbeite bei veraltetem Zustand fail-closed und schütze Embeddings sowie Logs ihrem Risiko entsprechend.

Möchtest du ein Permissions-First-RAG auf deinem SharePoint, Confluence oder Drive?

 Kostenloses Beratungsgespräch buchen

Quellen und weiterführende Informationen

  1. Microsoft 365 Copilot architecture, data protection, and auditing
  2. Microsoft: Restricted Content Discovery and Data Access Governance reports
  3. OWASP Top 10 for LLM Applications and NIST AI RMF Generative AI Profile
  4. Microsoft Graph: list DriveItem permissions and Selected permissions overview
  5. Atlassian: Confluence page restrictions, content restrictions API, and public-link security
  6. Google Drive API: manage sharing and Permissions resource
  7. Microsoft Entra ID token claims reference
  8. Microsoft identity platform OAuth 2.0 on-behalf-of flow
  9. PostgreSQL row security policies
  10. Google Drive API: change tracking overview
  11. Regulation (EU) 2016/679 (GDPR)
  12. Morris et al.: Text Embeddings Reveal (Almost) As Much As Text

Hilfe für KI in Produktion

Du baust ein KI-Produkt und machst dir Sorgen um Inference-Kosten, Architektur oder Production Readiness? Wavect hilft Gründern, KI-Prototypen in zuverlässige Produktionssysteme zu verwandeln.

Passender Service:

Postfach, ohne Lärm

Folge der Arbeit, die für dich zählt

Du bekommst eine kurze E-Mail, wenn wir etwas Neues veröffentlichen. Folge dem ganzen Blog oder nur den Themen, die dich interessieren.

Was möchtest du erhalten?
Themen auswählen

Kostenlos, Double-Opt-in, ohne Tracking-Pixel.

Zurück
Kevin Riedl

14 min Lesezeit · 11. Juni 2026
Zuletzt geprüft

Weiter

Erhalte die nächste Feldnotiz zu AI und Agents

Eine kurze E-Mail, wenn wir veröffentlichen. Ohne Tracking-Pixel und ohne Postfachfüller.

Kostenlos, Double-Opt-in, ohne Tracking-Pixel.