Deutschland → weltweit
WZ-IT Logo

Open WebUI an Nextcloud anbinden: RAG mit echten Rechten

Timo WevelsiepTimo WevelsiepAktualisiert: 23.07.2026

Hinweis zum Inhalt: Versionen, Befehle und Preise können sich ändern. Bitte prüfen Sie kritische Schritte vor dem produktiven Einsatz eigenständig. Dieser Leitfaden ersetzt keine individuelle Beratung.

Ein lokales ChatGPT auf Ihren Nextcloud-Daten - mit echten Rechten statt Prompt-Versprechen? WZ-IT baut souveräne RAG-Systeme, bei denen jede Anfrage nur die erlaubten Quellen sieht - auf eigener Infrastruktur, DSGVO-konform aus einer Hand. Custom RAG-Lösungen ansehen

Ein lokales Sprachmodell auf den eigenen Nextcloud-Dokumenten ist schnell aufgesetzt: Open WebUI als Oberfläche, ein paar Dateien in eine Knowledge Base, fertig. Für einen Prototyp reicht das. Für den Produktivbetrieb entsteht damit aber ein stilles Datenleck - denn die Berechtigungen aus Nextcloud wandern nicht automatisch mit. Dieser Artikel zeigt die Architektur eines belastbaren Systems: von der Identität über die Übernahme der Nextcloud-ACLs bis zum Filter in der Vektordatenbank. Stand Juli 2026.

Inhaltsverzeichnis

Das Sprachmodell ist kein Türsteher

Der naheliegende, aber falsche Weg: alle Dokumente in eine gemeinsame Knowledge Base laden und dem Modell per Systemprompt sagen, es solle Personalakten nur der Personalabteilung zeigen. Das ist keine Sicherheitsgrenze. Ein Sprachmodell ist keine Berechtigungsprüfung - es lässt sich überreden, und ein einziger unglücklicher Retrieval-Treffer genügt, damit ein Abschnitt aus einem vertraulichen Dokument in der Antwort landet.

Der Kern des Problems: Open WebUI übernimmt beim Hochladen einer Datei nicht automatisch die Nextcloud-ACL. Die Personalakte, die in Nextcloud nur für die Personalabteilung sichtbar ist, wird in der gemeinsamen Wissensbasis für jeden auffindbar, der Zugriff auf diese Knowledge Base hat. Die Lösung ist ein Prinzip aus klassischen Unternehmensanwendungen: Rechte werden im Backend erzwungen, nicht in der Präsentationsschicht. Auf RAG übertragen heißt das - das Modell bekommt ausschließlich Abschnitte, die für den anfragenden Benutzer bereits autorisiert sind.

Die Zielarchitektur: ACLs vor der Vektorsuche

Zwischen Oberfläche und Sprachmodell sitzt ein eigener Retrieval-Service, der die Sicherheitslogik trägt. Der Ablauf einer Anfrage:

  1. Der Benutzer stellt in Open WebUI eine Frage; seine Identität wird sicher weitergereicht.
  2. Der Retrieval-Service löst Identität und Gruppen zu Security Principals auf.
  3. Aus den Principals entsteht ein zwingender Filter für die Vektorsuche.
  4. Die Vektordatenbank liefert nur Treffer, die der Filter erlaubt.
  5. Erst diese autorisierten Abschnitte gehen als Kontext an das LLM.

Das Sprachmodell sieht damit nie einen Chunk, den der Benutzer nicht sehen darf. Was verboten ist, wird nicht per Prompt „verboten", sondern erreicht das Modell gar nicht erst.

Gemeinsame Identität und ihre sichere Übergabe

Fundament ist eine gemeinsame Identität über einen zentralen Identity Provider (OIDC): Open WebUI, Nextcloud und der RAG-Service kennen denselben Benutzer über eine stabile ID - den unveränderlichen OIDC-sub, nicht die änderbare E-Mail.

Bei der Übergabe von Open WebUI an den Retrieval-Service liegt eine Falle. Standardmäßig reicht Open WebUI - falls aktiviert - unsignierte Klartext-Header weiter (X-OpenWebUI-User-Id, -Email, -Name, -Role), die auf dem Netzwerkpfad fälschbar sind. Ein signiertes JWT entsteht nur, wenn zusätzlich ein Secret über FORWARD_USER_INFO_HEADER_JWT_SECRET gesetzt ist; dann kommt ein HS256-signiertes Token im Header X-OpenWebUI-User-Jwt. HS256 ist ein geteiltes Secret, kein öffentlicher Schlüssel - der RAG-Endpunkt darf deshalb nur intern erreichbar sein, nie direkt vom Browser.

Wichtig: Header und JWT enthalten keine Gruppen. Der RAG-Service muss die Gruppen serverseitig aus dem Identity Provider oder per LDAP auflösen - Zugriffsrechte dürfen nie aus vom Client gelieferten Angaben abgeleitet werden.

Nextcloud-Berechtigungen übernehmen

Beim Indexieren berechnet ein Connector pro Dokument die effektive ACL: Eigentümer, direkte Benutzerfreigaben, geerbte Ordnerfreigaben und interne Gruppenfreigaben. Nextcloud liefert diese Freigaben über die OCS Share API; Änderungen an Dateien und Freigaben lassen sich als Feed abholen, damit der Index aktuell bleibt.

Die berechnete ACL wird als Liste von Security Principals im Payload jedes Chunks gespeichert - also direkt an den Textabschnitten, über die später gesucht wird. Eine bewusste Entscheidung betrifft öffentliche Link- und föderierte Freigaben: Sie sollten nicht automatisch bedeuten, dass jeder KI-Nutzer Zugriff bekommt. Für internes RAG übernimmt man standardmäßig nur Eigentümer, direkte Benutzerfreigaben und interne Gruppenfreigaben.

Der ACL-Filter in der Vektordatenbank

Der entscheidende technische Punkt: Der ACL-Filter läuft zusammen mit der Ähnlichkeitssuche, nicht danach. Eine Nachfilterung - erst die besten Treffer suchen, dann verbotene entfernen - ist fehleranfällig und weicht die Mandantentrennung auf. Eine Vektordatenbank wie Qdrant wendet den Payload-Filter direkt während der Suche an, sodass verbotene Chunks gar nicht erst in die Ergebnismenge gelangen.

Für die Mandanten- und Rechtetrennung empfiehlt sich ein Payload-Filter über die gespeicherten Principals statt einer eigenen Collection pro Nutzer. Und die Richtung des Ausfalls muss stimmen: Bei Rechteentzug oder Zweifeln gilt fail-closed - im Zweifel kein Zugriff, nicht andersherum. Ein entzogenes Recht muss zeitnah im Index landen, sonst bleibt ein Dokument sichtbar, das es nicht mehr sein darf.

Vom Proof of Concept zum Produktivsystem

Der pragmatische Weg beginnt klein. Für einen gemeinsamen, für alle KI-Nutzer freigegebenen Wissensordner reicht die eingebaute Knowledge Base von Open WebUI - ein guter Proof of Concept, um Nutzen und Antwortqualität zu zeigen. Für die Abbildung individueller Benutzer- und Gruppenrechte trägt dieser Ansatz nicht: Die eingebaute Knowledge Base übernimmt beim Upload die Nextcloud-ACL nicht.

Der Schritt ins Produktivsystem ist deshalb der eigene Retrieval-Service, den Open WebUI über ein OpenAPI-Tool oder eine Pipeline aufruft - mit sicherer Identität, übernommenen ACLs und dem Filter in der Vektordatenbank. Wie RAG grundsätzlich funktioniert, erklärt Was ist RAG?; wo die Komponenten im größeren Bild sitzen, zeigt Der Open-Source-LLM-Stack.

Lieber betreiben lassen?

Sie möchten Lokale & Souveräne KI nicht selbst betreiben? WZ-IT übernimmt Einrichtung, Betrieb und Wartung - DSGVO-konform aus Deutschland.

Häufig gestellte Fragen

Antworten auf die wichtigsten Fragen

Nein - und es sollte auch nicht. Open WebUI ist die Oberfläche. Wer Zugriffskontrolle dem Sprachmodell überlässt, verlässt sich darauf, dass sich das Modell an eine Prompt-Anweisung hält - das ist keine Sicherheitsgrenze. In einem Produktivsystem werden die ACLs vor jeder Vektorsuche in einem eigenen Retrieval-Service technisch erzwungen. Das Modell sieht ausschließlich bereits autorisierte Treffer.

Nur wenn Sie es aktiv einschalten. Standardmäßig gibt Open WebUI keine signierten Tokens weiter, sondern - falls aktiviert - unsignierte Klartext-Header (X-OpenWebUI-User-Id, -Email, -Name, -Role), die auf dem Netzwerkpfad fälschbar sind. Ein signiertes JWT entsteht nur, wenn zusätzlich ein Secret über FORWARD_USER_INFO_HEADER_JWT_SECRET gesetzt ist; dann kommt ein HS256-signiertes Token im Header X-OpenWebUI-User-Jwt. Der RAG-Endpunkt darf nur intern erreichbar sein.

Nicht aus Open WebUI. Header beziehungsweise JWT enthalten keine Gruppen. Der RAG-Service muss die Gruppen deshalb selbst serverseitig aus dem zentralen Identity Provider (OIDC) oder per LDAP auflösen. Das ist die richtige Architektur: Zugriffsrechte dürfen nie aus vom Client gelieferten Angaben abgeleitet werden.

Beim Indexieren berechnet ein Connector pro Dokument die effektive ACL: Eigentümer, direkte Freigaben, geerbte Ordnerfreigaben und interne Gruppenfreigaben. Diese ACL wird als Liste von Security Principals im Payload jedes Chunks gespeichert. Nextcloud liefert die Freigaben über die OCS Share API; Änderungen lassen sich als Feed abholen.

Weil eine Nachfilterung fehleranfällig ist und die Mandantentrennung aufweicht. Eine Vektordatenbank wie Qdrant wendet den Filter direkt während der Ähnlichkeitssuche an, statt erst Top-Treffer zu suchen und danach verbotene zu entfernen. So kann das Modell verbotene Chunks gar nicht erst sehen. Für Mandantentrennung empfiehlt sich ein Payload-Filter statt einer Collection pro Nutzer.

Für einen gemeinsamen, für alle KI-Nutzer freigegebenen Wissensordner ja - das ist ein guter POC. Für individuelle Benutzer- und Gruppenrechte nein: Die eingebaute Knowledge Base übernimmt beim Upload nicht automatisch die Nextcloud-ACL. Dafür braucht es einen eigenen Retrieval-Service, den Open WebUI über ein OpenAPI-Tool oder eine Pipeline aufruft.

Ja. Alle Komponenten - Open WebUI, Retrieval-Service, Vektordatenbank und das Sprachmodell - laufen auf eigener Infrastruktur, sodass weder Dokumente noch Anfragen das Haus verlassen. Zusammen mit der technisch erzwungenen Zugriffskontrolle ist das die Grundlage für ein datenschutzkonformes Wissenssystem.

Kontakt

Lassen Sie uns über Ihre Idee sprechen

Ob konkrete IT-Herausforderung oder einfach eine Idee - wir freuen uns auf den Austausch. In einem kurzen Gespräch prüfen wir gemeinsam, ob und wie Ihr Projekt zu WZ-IT passt.

E-Mail
[email protected]

Führende Unternehmen vertrauen WZ-IT

  • ml&s
  • Rekorder
  • Keymate
  • Führerscheinmacher
  • SolidProof
  • ARGE
  • Boese VA
  • nextGYM
  • Maho Management
  • Golem.de
  • Millenium
  • Paritel
  • Yonju
  • EVADXB
  • Mr. Clipart
  • Aphy AG
  • Negosh
  • ABCO Water Systems
Timo Wevelsiep & Robin Zins - CEOs of WZ-IT

Timo Wevelsiep & Robin Zins

Geschäftsführer

1/3 - Themenauswahl33%

Worum geht es bei Ihrer Anfrage?

Wählen Sie einen oder mehrere Bereiche, bei denen wir Sie unterstützen dürfen.