Regelbasierte Berechtigungen (neu)
TopLogic realisiert funktionale Berechtigungen. D.h. es wird nicht direkt der Zugriff auf bestimmte Daten, sondern die Anzeige bzw. Ausführung von bestimmten Sichten und Kommandos (=Funktionen) auf bestimmten Datenobjekten berechtigt.
Sicht und Kommando
Sichten sind Seiten der Applikation, welche über eine Menünavigation (als "Reiter") erreichbar sind. Kommandos sind Funktionen, die innerhalb einer Sicht als Schaltfläche oder Menüeintrag angeboten werden können. Die einfache Anzeige einer Sicht ist ebenfalls als "Lese-" Kommando realisiert. Technisch werden Kommandos über CommandHandler realisiert.
Kommandogruppe
Kommandogruppen können mehrere Kommandos für eine gemeinsame Berechtigung zusammenfassen. Jede Sicht publiziert die Kommandogruppen ihrer deklarierten Kommandos. Diese Kommandogruppen werden dann für einzelne Rollen berechtigt, d.h. die Berechtigung erfolgt auf Ebene der Kommandogruppen anstatt für einzelne Kommandos. So wird die konsistente Berechtigung zusammengehöriger Kommandos sichergestellt.
Bei der Deklaration eines neuen Kommandos wird es immer einer Kommandogruppe zugeordnet, über die dann die Berechtigung zur Ausführung des Kommandos gesteuert wird.
Standardkommandogruppen sind "READ", "WRITE", "DELETE", "EXPORT". Weitere Kommandogruppen können konfigurativ ergänzt werden.
Benutzerkonto
Ein Benutzerkonto repräsentiert eine Person, die sich am System anmelden kann. Für die Nutzung der Applikation ist einer Nutzeranmeldung erforderlich und somit kann jede aktive Sitzung einem konkreten Benutzerkonto zugeordnet werden. Zu jedem Benutzerkonto existiert ein korrespondierender Adressbucheintrag, der "Kontakt". Bei Löschung eines Benutzerkontos bleibt dieser Kontakt erhalten. Daher erfolgt die Zuweisung von Benutzerkonten zu Fachobjekten regelmäßig nicht direkt sondern über den zugehörigen Kontakt. So bleibt die Zuordnungsinformation (Name, Vorname, Email) erhalten, auch wenn das Benutzerkonto selbst gelöscht wird. Außerdem können so auch Kontake (=Adressbucheinträge) informativ für fachliche Zuordnungen verwendet werden, die keinen Systemzugang, also kein Benutzerkonto besitzen.
Benutzerkonten werdem in Reiter Administration > Zugänge administriert.
Gruppe
Eine Gruppe fasst eine Menge von Benutzerkonten (als Mitglieder) zusammen.
Die Menge der benötigten Gruppen wird als Teil des Berechtigungskonzepts in der Anwendungskonfiguration definiert.
Rolle
Für eine Rolle können funktionale Berechtigungen definiert werden: Dabei wird durch Auswahl der entsprechenden Kommandogruppen festgelegt, welche Sichten (Reiter) dem Inhaber einer Rolle zur Verfügung stehen und welche Kommandos (Buttons, Funktionen) der Inhaber einer Rolle ausführen darf.
Die Menge der benötigten Gruppen kann als Teil des Berechtigungskonzepts in der Anwendungskonfiguration definiert werden.
Berechtigungsprofil
Die Menge der einer Rolle zugeordneten Kommandogruppen bildet das "Berechtigungsprofil" dieser Rolle.
Die Berechtigungsprofile einzelner Rollen sind additiv, erlaubend. D.h. eine Rolle gewährt stets die aktivierten Berechtigungen ihres Berechtigungsprofils, verbietet aber die übrigen nicht.
Die Gegenüberstellung aller Rollen mit der Menge der möglichen Berechtigungen bildet die "Berechtigungsmatrix ". der Applikation.
Berechtigungsprofile können im Reiter "Administration > Berechtigungen > Rollenprofile" bearbeitet werden.
Rollenvergabe
Rollen werden an Benutzergruppen und einzelne Benutzerkonten vergeben, wobei derselbe Benutzer bzw. dieselbe Gruppe mehrere Rollen in sich vereinen kann und dadurch die Vereinigungsmenge der Berechtigungsprofile der einzelnen Rollen erlangt. Die Rollenvergabe auf Gruppenebene ist für die Gruppenmitglieder gleichbedeutend mit der Rollenvergabe für einzelne Benutzerkonten: Die Erlangung / der Verlust einer Gruppenmitgliedschaft ist für ein Benutzerkonto gleichbedeutend mit der Erlangung / dem Verlust der für die Gruppe vergebenen Rollen.
Technisches Detail: Intern werden Rollen immer für Gruppen vergeben. Tatsächlich wird für jedes Benutzerkonto intern eine eigene Gruppe mit dem Benutzerkonto als einzigem Mitglied angelegt. Die Rollenvergabe für einzelne Benutzerkonten erfolgt techisch nicht auf dem Benutzerkonto selbst, sondern auf der zugehörigen Gruppe. Dies ermöglicht die Realisierung einer systemweiten Stellvertreterregelung: Wählt ein Benutzer A ein anderes Benutzerkonto B als "Stellvertreter" aus, so wird dieses Benutzerkonto B ebenfalls Mitglied der Benutzergruppe A und erhält dadurch automatisch alle Berechtigungen von Benutzer A.
Die Vergabe von Rollen erfolgt stets im Kontext eines Fachbjekts als Berechtigungskontext zur Definition des Geltungsbereichs. D.h. Benutzerkonten oder Gruppen erhalten Rollen immer in Bezug zu einer Objektinstanz: Dem Berechtigungskontext.
Regelbasierte Rollenvergabe
Die Vergabe einzelner Rollen für einzelne Benutzerkonten oder Benutzerguppen auf einzelnen Fachobjekten erzeugt hohen administrativen Aufwand und ist aber einer gewissen Größenordnung nicht mehr praktikabel. Daher wird die konkrete Vergabe von Rollen auf einzelnen Fachobjekten durch die Auswertung definierter Regeln automatisiert.
Im Rahmen eines Brechtigungskonzepts für die Applikation wird hierbei einmalig definiert, welche Rollen aufgrund welcher fachlichen Zuordnungen für einzelne Benutzerkonten oder Benutzergruppen vergeben werden. Solche Regeldefinitionen ermöglichen auch die Vererbung von Rollen durch Navigation über das fachliche Datenmodell der Applikation.
So kann die technische Vergabe von Rollen auf ganze Objektnetze durch einfache fachliche Benutzerzuweisungen oder Gruppenzuordnungen realisiert werden.
Die Auswertung dieser Regeln erfolgt in Echtzeit, d.h. die konkreten Berechtigungen einzelner Benutzer entsprechen stets dem aktuellen Datenstand der Applikation.
Berechtigungsprüfung
Alle Sichten und Kommandos der Applikation werden dem Benutzer stets in Bezug zu einem Berechtigungskontext angeboten. Bei fachlichen Sichten und Funktionen wird dieser Berechtigungskontext regelmäßig durch das angezeigte Fachobjekt realisiert, wobei dem Anwender die aktive Auswahl des anzuzeigenden Objekts (und damit die Auswahl des Berechtigungskontextes) ermöglicht wird. Bei administrativen Sichten oder solchen ohne fachlichen Kontext wird der Berechtigungskontext durch technische Objektinstanzen realisiert, die in der Anwendungskonfiguration deklariert werden. In diesem Fall steht dem Anwender keine aktive Auswahl des Berechtigungskontextes zur Verfügung.
Zur Berechtigungsprüfung werden alle Rollen des zugreifenden Benutzers auf dem aktiven Berechtigungskontext ermittelt und es wird überprüft, ob die Vereinigungsmenge derer Rollenprofile die zugehörige Kommandogruppe des jeweiligen Kommandos enthält und die Ausführung somit gestattet.
Zusammenfassung
Die Menge der vorhandenen Gruppen, Rollen und Regeln wird einmalig als Berechtigungskonzept einer Applikation definiert und in der Anwendungskonfiguration hinterlegt. Die Regeln definieren dabei die Vergabge von Rollen für Benutzerkonten und Gruppen basierend auf deren Zuweisung auf Objektinstanzen des fachlichen Datenmodells. Jede Rolle definiert ein erlaubendes Berechtigungsprofil für die Anzeige bzw. Ausführung bestimmter Sichten und Kommandos. Jedes Kommando der Applikation ermittelt eine konkrete Objektinstanz (aus der Anwendungskonfiguration oder der aktuellen Objekt-Auswahl des Anwenders) für die Nutzung als Berechtigungskontext und stellt fest, ob der Anwender gemäß seiner Rollenzuweisung auf diesem Berechtigungskontext zur Ausführung des betreffenden Kommandos berechtigt ist oder nicht.
Die regelbasierte Automatisierung der technischen Rollenvergabe ermöglicht dabei eine feingranulare Berechtigungsverwaltung bei gleichzeitig minimalem administrativem Aufwand und gesicherter Konsistenz.
Anwendungsbeispiel
Eine Applikation unterstützt die Abbildung einer Organisationsstruktur aus Haupt- u. Unterabteilungen. Administratoren sollen die gesamte Struktur einsehen können, während ein Hauptabteilungsleiter Zugriff auf seine Abteilung mit allen Unterabteilungen benötigt.
Administratoren
In der Anwendungskonfiguration wird eine Gruppe "Administratoren" mit einer korrespondierenden Rolle "admin" deklariert. Dabei wird festgelegt, dass die Gruppe diese Rolle auf dem Wurzelknoten der Organisationsstruktur erhält. Über eine Regel wird definiert, dass die Rolle "admin" auf alle Haupt- u. Unterabteilungen dieser Struktur veerbt werden soll. Die konkreten Berechtigungen von Administratoren in dieser Struktur werden durch das Berechtigungsprofil der Rolle "admin" definiert. Ob ein Benutzerkonto als Administrator gilt oder nicht, wird einzig durch die Gruppenzuordnung zur Gruppe "Administratoren" bestimmt: Eine manuelle Pflege von Berechtigungen für einzelne (ggfs. neu angelegte) Abteilungen ist ebensowenig nötig wie für einzelne Benutzer nach Erlangung oder Verlust dieser Gruppenmitgliedschaft.
Hauptabteilungsleiter
Im fachlichen Datenmodell der Applikation wird in der Organisationsstruktur eine Referenz "Abteilungsleiter" für die fachliche Zuweisung eines Benutzerkontos realisiert. In einer Regel zur Rollenvergabe wird definiert, das für das zugewiesene Benutzerkonto die Rolle "Abteilungsleiter" auf der Abteilung sowie deren Unterabteilungen vergeben wird. Die konkreten Berechtigungen eines Abteilungsleiters auf seiner Abteilung werden durch das Berechtigungsprofil der Rolle "Abteilungsleiter" definiert. Ob ein Benutzerkonto als "Abteilungsleiter" gilt oder nicht, wird einzig durch die fachliche Zuweisung in die Organisationsstruktur bestimmt: Eine manuelle Pflege von Berechtigungen für einzelne (ggfs. neu angelegte) Fachobjekte ist ebensowenig nötig wie für einzelne Benutzer nach Erlangung oder Verlust dieser Zuordnung.
im Ergebnis ist sichergestellt, das Mitglieder der Gruppe Administratoren die gesamte Struktur einsehen und ggfs. bearbeiten können, während Abteilungsleiter jeweils Zugriff auf "ihre Abteilungen" erlangen, während ihnen andere (fremde) Abteilungen verborgen bleiben.