Skip to content

Administration RightsManagement

Florian Fehring edited this page Oct 5, 2026 · 1 revision

Das Rechtemanagement des Usermanager ist ein Resource-Driven-Right-Management. Dies bedeutet, es gibt keine "Rollen" für Benutzer, sondern nur Zuordnungen, zwischen Ressourcen, Rechten und Benutzern.

Ein Recht setzt sich immer aus einer Ressource und einer dazugehörigen Aktion zusammen. Die Ressource wird durch einen Resources-Pfad identifiziert und die Aktion durch einen Aktionsbezeichner. Diese Vorgehensweise macht die Rechteverwaltung universell, auch über Applikationsgrenzen hinweg einsetzbar. Welche Ressourcen es gibt, und welche Rechte, ist dabei den Anwendungen überlassen. Der Usermanager-Server muss dazu auch keine Liste von möglichen Rechten und Aktionen kennen. Kennt der Server keine Kombination für eine Ressource und ein Recht, so hat niemand eine Berechtigung auf diese Ressource in Kombination mit der Aktion.

Beispiel für Ressourcen: Application1.Stores.Products Application1.Stores.Seller

Beispiele für Aktionen: create, update, delete

Die Rechte werden über die Datenbanktabellen, die Client-Bibliothek oder die REST-Schnittstelle eingetragen. Eine grafische Oberfläche zur Verwaltung der Benutzer ist nicht vorgesehen, da übliche Datenbankverwaltungstools wie pgAdmin hierzu vollkommen ausreichend sind.

Ressourcen verwalten

Um eine Resource hinzuzufügen, muss diese lediglich in die Tabelle usermanager.resources eingetragen werden. Einzutragen ist der komplette Pfad. Eine Ressource ist eindeutig, kann also nicht mehrmals angelegt werden. Existiert eine Ressource nicht ist dies gleichbedeutend mit einer Ressource, auf die keine Rechte existieren.

Application-Resource

Jede Anwendung, welche das Rechtesystem nutzen möchte, muss einmalig registriert werden. Mit der Registrierung erhält sie ein Benutzerkonto und eine ApplicationResource. Die ApplicationResource sorgt für die eindeutige Zuordnung von Resourcen. Das Benutzerkonto erlaubt den Zugriff auf die ApplicationResource.

Beispiel: Application1.Stores.Products hier ist "Application1" die ApplicationResource.

Beispiel: grantRight(Testbenuzter,Application1.Stores.Products,create,Appliation1Benuztername,Application1Password) setzt das Recht Produkte anzulegen für den Testbenuzter unter Verwendung der Identifizierung des Benutzerkontos für die Applikation.

*-Resource

Die *-Resource ist eine spezielle Resource, welche das gesetzte Recht auf alle untergeordneten Resourcen in dieser Hierarchie setzt.

Beispiel:

Resource Action
Application1.Stores.* create

Erlaubt das Anlegen von Produkten und Verkäufern.

*-Action

Die *-Action ist eine spezielle Aktion, welche alle Aktionen auf ein Recht erlaubt. Alle Rechte umfasst dabei sowohl zum Anlegezeitpunkt definierte Aktionen, als auch evtl. erst später hinzukommende.

Beispiel:

Resource Action
Application1.Stores.Products *

Erlaubt alle Aktionen auf Produkte.

Administrator-Recht

Administrationsrechte sind globale Rechte und können daher als Kombination aus *-Resource und *-Action definiert werden.

Beispiel:

Resource Action
Application1.* *

Rechte verwalten

Rechte werden über die Datenbanktabelle usermanager.userrights administriert. Hier ist die id des Benutzers, die id der Ressource und die Aktion, welche erlaubt werden soll in eine Zeile einzutragen.

Usermanager-Rechte

Die Rechte für die Benutzerverwaltung werden genauso vergeben und geprüft, wie die Rechte, welche dritte Anwendungen definieren können. Die folgende Tabelle listet alle Ressourcen und Aktionen, welche vom Usermanager interpretiert werden.

Ressource Aktion Beschreibung
de.fhbielefeld.scl.usermanager.user get Daten anderer Benutzer abfragen
de.fhbielefeld.scl.usermanager.user save Daten anderer Benutzer speichern
de.fhbielefeld.scl.usermanager.userright GRANT Einem anderen Benutzer ein Recht geben
de.fhbielefeld.scl.usermanager.userright revoke Ein Recht von einem anderen Benutzer löschen
de.fhbielefeld.scl.usermanager.user CREATE Einen Benutzer anlegen
de.fhbielefeld.scl.usermanager.user GETCHILDS Daten von untergeordneten Benutzern abfragen
de.fhbielefeld.scl.usermanager.user GETALL Daten von anderen Benutzern abfragen
de.fhbielefeld.scl.usermanager.user UPDATECHILDS Daten von untergeordneten Benutzern ändern
de.fhbielefeld.scl.usermanager.user UPDATEALL Daten von anderen Benutzern ändern
de.fhbielefeld.scl.usermanager.user DELETECHILDS Alle untergeordneten Benutzer löschen
de.fhbielefeld.scl.usermanager.user DELETEALL Daten von anderen Benutzern löschen

Hinweise:

  • Ein Benutzer hat immer das Recht, seine eigenen Benutzerdaten abzufragen. Dafür muss er sein Passwort als Legitimation angeben.
  • Ein Benutzer hat immer das Recht, seine eigenen Benutzerdaten zu speichern. Dafür muss er sein Passwort als Legitimation angeben.
  • Ein Benutzer kann sich selbst anlegen.

Clone this wiki locally