Das ECUI setzt für die User-Verwaltung eine standardisierte Lösung ein welche auf dem von Microsoft entwickelten Identity-Model basiert.
Benutzer
Ein Benutzer beinhaltet folgende Eigenschaften:
Eigenschaft | Funktion |
---|---|
EMail-Bestätigt | Ob die Mail-Adresse eines Benutzer bestätigt ist. Ohne diese Bestätigung kann der Benutzer sich nicht einloggen. |
Username und EMail | Der Username und das E-Mail sind grundsätzlich unabhängig. Für eine einfachere Verwaltung wird empfohlen diese Werte gleich zu halten. |
Lockout | Der Lockout kann aktiviert oder deaktiviert werden. Ist das Feature aktiviert so wird der Benutzer nach mehreren ungültigen Login-Versuchen gesperrt. Nach einer festgelegten Zeitspanne wird der Benutzer wieder aktiviert. |
Passwort | Ein Benutzer kann aber muss kein Passwort haben. Benutzer ohne Passwort können beispielsweise sinnvoll sein wenn eine externe Authentifizierung bevorzugt wird. z.B. über MS-Azure AD. Das Passwort muss verschiedene Anforderungen erfüllen damit es gültig ist. |
MFA | TODO jakob |
Rollen
Jeder Benutzer kann verschiedene Rollen zugewiesen haben. Diese Rollen bestehen standardmässig aus einem Namen, Bezeichnung und Wert. Der Name und Wert wird intern verwendet für die Zuweisung und sollte prägnant und aus einem Wort bestehen. Die Bezeichnung kann beliebig gewählt werden.
Die Bezeichnungen sind übersetzbar mit dem folgenden Schlüssel:
Role.{Name der Rolle}
Für eine Rolle mit dem Namen Administrator würde der Schlüssel wie folgt aussehen:
Role.Administrator
Eine Rolle kann in mehreren Zuweisungen vorkommen. Dabei wird die Rolle mit einem Benutzer verknüpft.
Eine Rolle hat zusätzliche eine Liste von Berechtigungen:
Eigenschaft | Beschreibung | Beispiel |
---|---|---|
Entität/Klasse | Eine Referenz auf eine vorhandene Entität im Model. Die Berechtigungen respektive Einschränkungen werden für diese Entität angewendet. | Person |
Rolle | Die Rolle zu welcher die Einschränkung gehört. | Mitarbeiter |
Darf-Lesen | Gewährt lesenden Zugriff auf die Entität. | true/false |
Darf-Schreiben | Gewährt schreibenden Zugriff auf existierende Entitäten. | true/false |
Darf-Erstellen | Gewährt das Recht neue Entitäten zu erfassen. | true/false |
Darf-Löschen | Gewährt das Recht Entitäten zu löschen. | true/false |
Lese-Einschränkung | Eine Expression welche den Lesen-Zugriff generell einschränkt. Siehe Expression für Beispiele und weitere Instruktionen. | Aktiv == true |
Schreib-Einschränkung | Eine Expression welche den Schreib-Zugriff generell einschränkt. Siehe Expression für Beispiele und weitere Instruktionen. | Aktiv == true |
Lösch-Einschränkung | Eine Expression welche den Löschen-Zugriff generell einschränkt. Siehe Expression für Beispiele und weitere Instruktionen. | Aktiv == true |
Ausgeschlossene Felder | Komma-separierte Liste von Feldern die unter der aktuellen Berechtigung nicht zurückgegeben werden. Die Werte werden beim speichern verworfen und beim lesen durch Default-Werte ersetzt. | Salary,Active |
Rollenzuweisung
Die Verknüpfung einer Rolle mit einem Benutzer erfolgt über die Rollenzuweisung.
Dabei kann zusätzlich ein Kontext definiert werden welcher danach in den Expressions verwendet werden kann. So kann ein Benutzer beispielsweise mit einer Person verknüpft werden und die Einschränkung danach dynamisch auf diese gesetzt werden.
z.B. Context == ID
Eine Zuweisung kann auf ein beliebiges Objekt erfolgen.
Empfehlungen
Jeder Benutzer sollte nur die Berechtigungen haben die er explizit benötigt. Berechtigungen auf Vorrat sind nicht empfohlen.
Wo möglich sollten die Berechtigungen weiter eingeschränkt werden damit nur die Daten sichtbar sind welcher der Benutzer auch benötigt.
Die Einschränkung über ein Layout ist keine Alternative zu Einschränkungen über die Berechtigungen. Die Layout-Filter sind nur eine visuelle Einschränkung und können umgangen werden.