Rollen und Rechte in Unternehmenssoftware planen
Rechte wirken wie ein Nebenthema und sind eine der folgenreichsten frühen Entscheidungen. Wer sie zu spät plant, baut sie später quer durch die ganze Anwendung nach.
Das lernen Sie
Rolle und Recht sind nicht dasselbe
Ein Recht ist eine einzelne Erlaubnis: Aufträge sehen, Aufträge freigeben, Preise ändern. Eine Rolle bündelt Rechte zu einem Aufgabenbild: Sachbearbeitung, Vertrieb, Buchhaltung.
Die Trennung lohnt sich, sobald es mehr als zwei Gruppen gibt. Rechte an einzelne Personen zu vergeben ist am Anfang schneller und wird mit jedem Personalwechsel teurer — dann sucht jemand, welche Erlaubnisse die ausgeschiedene Person hatte.
Vier Fragen, die beantwortet sein müssen
Die vierte Frage hat eine Nebenwirkung, die oft übersehen wird: Wenn Daten nicht wirklich gelöscht werden, müssen alle Listen und Auswertungen wissen, dass es ungültige Datensätze gibt. Vergisst man das an einer Stelle, erscheinen gelöschte Vorgänge in der Jahresstatistik.
Rechte gelten auf dem Server, nicht in der Oberfläche
Eine ausgeblendete Schaltfläche ist eine Bedienhilfe, keine Absicherung. Wer die Adresse kennt, ruft den Vorgang trotzdem auf. Verbindlich ist nur die Prüfung auf dem Server, und zwar bei jedem einzelnen Zugriff — auch bei dem, den die Oberfläche gar nicht anbietet.
Das gilt besonders für Listen mit Filtern: Ein Filter, der die Rechteprüfung umgeht, zeigt über einen Adressparameter Daten, die in der Oberfläche nie erreichbar wären. Solche Stellen finden sich fast nur im Review oder in einem Test, der gezielt danach sucht.
Ein Beispiel aus der Praxis
Vertretung — der Fall, der jede saubere Planung herausfordert
Die Zuständige ist im Urlaub, der Vorgang muss trotzdem freigegeben werden. Drei Wege sind üblich, und sie unterscheiden sich stark:
Welcher Weg richtig ist, hängt davon ab, wie oft der Fall auftritt. Wichtig ist nur, dass er vor dem Bauen entschieden wird — nachträglich eingezogene Vertretungslogik berührt jede Prüfstelle in der Anwendung.
Womit man anfängt
Nicht mit einer Rechtematrix über fünfzig Einzelrechte. Sinnvoll ist: drei bis fünf Rollen benennen, für jede die vier Fragen oben beantworten, und die Sonderfälle aufschreiben statt sie sofort zu lösen.
Die Sonderfälle sind der eigentliche Erkenntnisgewinn. Wenn beim Aufschreiben auffällt, dass eine Rolle in zwei Abteilungen Unterschiedliches darf, Wenn beim Aufschreiben auffällt, dass eine Rolle in zwei Abteilungen Unterschiedliches darf, bildet man es entweder als zwei Rollen ab oder als eine Rolle mit einem Geltungsbereich, etwa der eigenen Abteilung.
Häufige Missverständnisse
Über den Autor
Fabian Lücker ist geschäftsführender Gesellschafter der PHP-Schmiede KG in Rheine und seit 2007 in der Softwareentwicklung tätig. Er verantwortet Entwicklung und Konzeption und schreibt hier über Entscheidungen, die in echten Projekten anfallen.