Transparente Berechtigungen für selbst gehostete Dokumentensysteme gestalten
Eine neue Open-Source-DMS-Architektur erklärt Zugriffsrechte nach Abteilung und Vererbung und löst das häufige Problem intransparenter Dateiberechtigungen in gemeinsamen Laufwerken.
Automatisch aus dem englischen Original übersetzt.
Am 28. Oktober 2026 stellte ein Entwickler eine Berechtigungsarchitektur für SpiderFolio vor, ein Open-Source-, selbst gehostetes Dokumentenmanagementsystem. Das Design konzentriert sich darauf, Zugriffsrechte für kleine Unternehmen transparent und verwaltbar zu machen, indem die Kontrolle von einzelnen Benutzern auf Abteilungen und Rollen verlagert wird.
Was passiert ist
Der Autor beobachtete, dass es in den meisten Organisationen nahezu unmöglich ist, zu beantworten, wer einen bestimmten Ordner sehen kann und warum. Der Zugriff wird oft personenzentriert gewährt, was zu geerbten Berechtigungen führt, an die sich niemand erinnert, und zu Aufräumaufgaben, die nie durchgeführt werden. Um dies anzugehen, baute der Entwickler SpiderFolio mit einer Kernregel: Jeder Ordner, jede Datei und jede Seite muss nicht nur anzeigen, wer Zugriff hat, sondern auch den spezifischen Grund für diesen Zugriff, wie z. B. "Qualitätsabteilung · geerbt von /Verfahren".
Das System entfernt sich von direkten Benutzerzuweisungen als primäre Kontrollmethode. Stattdessen wird der Zugriff Abteilungen und Rollen zugewiesen. Dieser Ansatz stellt sicher, dass sich die Zugriffsrechte eines Mitarbeiters automatisch aktualisieren, wenn er von einer Abteilung, wie Produktion, in eine andere, wie Qualität, wechselt. Während direkte Zuweisungen an Einzelpersonen weiterhin möglich sind, markiert das Admin-Panel diese als Indikatoren für Unordnung und ermutigt Administratoren, sauberere, rollenbasierte Strukturen beizubehalten.
Wichtige Details
- Die Zugriffsebenen folgen einer Hierarchie, in der die höchste Berechtigung gewinnt: MANAGE ist größer als EDIT, welches größer als COMMENT ist, welches wiederum größer als VIEW ist.
- Berechtigungen werden standardmäßig von übergeordneten Ordnern bis zur Ebene des Arbeitsbereichs (Space) vererbt, aber jeder Knoten im Baum kann diese Vererbung stoppen, um isolierte Bereiche zu erstellen.
- Das System löst den Zugriff unter Verwendung einer einzigen Funktion auf, die sowohl die Berechtigungsebene als auch den Grund für die Gewährung zurückgibt, was klare "Wer kann das sehen?"-Berichte ermöglicht.
- Datenbankabfragen werden optimiert, indem Bäume in Stapeln aufgelöst werden, eine Abfrage pro Ebene, um Leistungsprobleme zu vermeiden, die als N+1-Abfragen bekannt sind; die Ergebnisse werden pro Anfrage zwischengespeichert.
- Die Mandantenisolierung wird durch einen scoped Prisma Client durchgesetzt, der sicherstellt, dass Benutzer eines Unternehmens eine 404-Fehlermeldung erhalten, wenn sie versuchen, auf Daten eines anderen Unternehmens zuzugreifen.
- Das Projekt steht unter der Lizenz AGPLv3 und ist so konzipiert, dass es einfach mit Docker Compose installiert werden kann.
Hintergrund
Berechtigungssysteme in Software verlassen sich oft auf Access Control Lists (ACLs) oder Role-Based Access Control (RBAC). In traditionellen Dateiservern können ACLs komplex werden, weil Berechtigungen häufig direkt Benutzern zugewiesen werden. Im Laufe der Zeit führt dies zu "Permission Creep", bei dem Benutzer Rechte ansammeln, die sie nicht mehr benötigen. RBAC vereinfacht dies, indem Rechte Rollen zugewiesen werden, bietet aber oft keine Transparenz darüber, warum ein bestimmter Benutzer Zugriff auf eine bestimmte Ressource hat.
Vererbung ist eine übliche Funktion in Dateisystemen, bei der untergeordnete Objekte, wie Dateien in einem Ordner, automatisch die Berechtigungen ihres übergeordneten Elements erhalten. Dies ist zwar effizient, kann aber Sicherheitsrisiken verursachen, wenn ein sensibler Unterordner breite Zugriffe von einem allgemeinen übergeordneten Ordner erbt. Die Möglichkeit, die Vererbung zu brechen oder zu stoppen, ist entscheidend für die Erstellung sicherer Zonen innerhalb einer größeren Struktur, wie z. B. die Geheimhaltung von Gehaltsdaten innerhalb eines allgemeinen Personalverzeichnisses.
Warum es wichtig ist
Für Teams, die ihre eigene Software betreiben, insbesondere Dokumentenmanagementsysteme, ist die Nachvollziehbarkeit ein großes Anliegen. Wenn Berechtigungen intransparent sind, können IT-Manager die Einhaltung von Datenschutzvorschriften nicht leicht überprüfen. Durch die Bereitstellung eines klaren Grundes für jede Zugriffsgewährung ermöglicht diese Architektur Administratoren, schnell zu verstehen und zu rechtfertigen, wer was sieht. Diese Transparenz reduziert das Risiko versehentlicher Datenlecks, die durch vergessene oder falsch konfigurierte individuelle Zuweisungen verursacht werden.
Die betriebliche Effizienz verbessert sich ebenfalls, wenn der Zugriff an die Organisationsstruktur gebunden ist und nicht an Einzelpersonen. In kleinen und mittleren Unternehmen wechseln Mitarbeiter oft die Rolle oder die Abteilung. Manuelle Berechtigungsaktualisierungen sind fehleranfällig und zeitaufwändig. Die Automatisierung dieses Prozesses durch abteilungsbasierte Zuweisungen stellt sicher, dass Zugriffsrechte aktuell bleiben, ohne dass ständige administrative Eingriffe erforderlich sind. Dies reduziert die Arbeitslast für IT-Mitarbeiter und minimiert den Zeitraum, in dem ein Mitarbeiter möglicherweise unangemessenen Zugriff hat.
Leistung ist ein weiterer kritischer Faktor für selbst gehostete Anwendungen. Komplexe Berechtigungsprüfungen können das Browsen von Dateien und Suchvorgänge verlangsamen. Der beschriebene Ansatz, Abfragen zu stapeln und Ergebnisse pro Anfrage zu cachen, hilft dabei, die Reaktionsfähigkeit aufrechtzuerhalten, auch wenn die Dokumentenbibliothek wächst. Dies stellt sicher, dass die Sicherheitsschicht nicht zum Engpass für tägliche Operationen wird, sodass Teams ihre Dokumentenspeicherung skalieren können, ohne die Benutzererfahrung zu beeinträchtigen.
Was Sie tun können
- Überprüfen Sie Ihren aktuellen Dokumentenspeicher, um Ordner zu identifizieren, in denen der Zugriff Personen statt Gruppen oder Abteilungen gewährt wird.
- Implementieren Sie eine Hierarchie von Berechtigungsebenen, wie Ansehen, Kommentieren, Bearbeiten und Verwalten, um Rollendefinitionen zu vereinfachen.
- Konfigurieren Sie Ihr System so, dass Berechtigungen standardmäßig vererbt werden, aber spezifische Ausnahmen für sensible Unterordner zulässt, die strengere Isolierung erfordern.
- Fügen Sie Ihrem Admin-Interface Sichtbarkeitsfunktionen hinzu, die erklären, warum ein Benutzer Zugriff auf eine Ressource hat, unter Angabe der spezifischen Rolle oder Gruppe, die dafür verantwortlich ist.
- Optimieren Sie Datenbankabfragen für Berechtigungsprüfungen durch Stapelverarbeitung und Caching, um Leistungseinbußen während Zeiten mit hohem Traffic zu verhindern.
- Erzwingen Sie die Mandantenisolierung in Multi-Company-Setups durch die Verwendung von Scoped Database Clients und rigorosem Integrationstesting, um datenübergreifenden Zugriff zwischen Mandanten zu verhindern.



