Authentifizierung / Autorisierung
Schleupen.CS 3.0 kann wahlweise in einem von zwei Authentifizierungsmodi betrieben werden:
- Windows Aktive Directory (AD) oder
- OpenID Connect (OIDC)
OIDC kann bislang nur dann eingesetzt werden, wenn das CS-System ausschließlich Komponenten der Version 3.0 nutzt. Windows AD-Authentifizierung wird eingesetzt, wenn Side-by-Side-Systeme betrieben wird. Im Side-by-Side-Betrieb kommen auch 2.0-Komponenten zum Einsatz, die nur die Authentifizierung mittels Windows-AD unterstützen.
Die initiale Authentifizierung von Benutzern erfolgt im Active-Directory-Modus mithilfe des Protokolls Kerberos, als Fallback wird im Standard NTLM 2 verwendet (siehe hierzu auch Exkurs: Authentifizierung WCF). Hierzu muss der Benutzer in der Domäne, in der Schleupen.CS 3.0 betrieben wird, eingerichtet und bekannt sein.
Falls das System im OIDC-Modus betrieben wird, findet die Authentifizierung des Benutzers mittels des Authorization Code Flows statt. Dazu muss der Benutzer im OIDC-Provider vorher bekannt gemacht worden sein. Schleupen.CS unterstützt jeweils per Konfiguration den Anschluss von genau einem OIDC-Provider.
Die Authentifizierung des anmeldenden Benutzers findet entweder vollautomatisch (Windows-AD) oder über über einen Dialog zur Abfrage der User-Credentials statt (OIDC-Modus):
Anschließend kann in beiden Modi die Anmeldung an der Systemstruktur vorgenommen werden:
Bei erfolgreicher Anmeldung wird die Kennung des anmeldenden Benutzers aus dem jeweiligen Authentifizierungssystem ermittelt (SID bei Windows-AD und subject-id bei OIDC) und in das SessionToken geschrieben wird. Dieses SessionToken, das insbesondere kennzeichnet auf welchem Knoten in der Systemstruktur gearbeitet wird, wird durch die Service- und Messaging-Aufrufe transportiert.
Die Autorisierung, d.h. die Möglichkeit des Zugriffs auf bestimmte Funktionalität von Schleupen.CS, erfolgt über Funktionsrechte. Es ist eine Design-Entscheidung, keine Autorisierungsinformationen außerhalb von Schleupen.CS abzulegen und zu nutzen.
Die Funktionsrechte bilden einen Baum, exemplarisch ist ein Ausschnitt dessen für die Funktionsrechte BenutzerVerwalten, BenutzerAnzeigen und ÄnderungsprotokollAnzeigen dargestellt. Auf allen Knoten in diesem Baum können für das jeweilige Funktionsrecht folgende Werte angegeben werden:
- Ja - Das Funktionsrecht ist gewährt
- Nein - Das Funktionsrecht ist entzogen
- nicht vergeben - Das Funktionsrecht ist nicht zugewiesen
Die Auswertung findet von unten nach oben statt, wobei folgende Regeln gelten.
- Ist auf dem Knoten (also dem Funktionsrecht) Ja oder Nein angegeben, so wird dieser Wert verwendet.
- Ist auf dem Knoten die Berechtigung nicht vergeben, so wird der übergeordnete Knoten geprüft.
- Das oberste Funktionsrecht Schleupen.CS ist per Default immer deaktiviert.
In Schleupen.CS gibt es eine eigene Benutzer- und Gruppenverwaltung. Für einen Benutzer muss hierbei eine SID hinterlegt sein, um die Verknüpfung zum Active Directory herstellen zu können. Benutzer können zu Gruppen zusammengefasst werden. Zudem können auch mehrere Gruppen in einer Gruppe zusammengefasst werden. Ein Funktionsrechtebaum kann dann einer Gruppe zugewiesen werden. Die effektiven Berechtigungen für einen Benutzer ergeben sich dann aus den Gruppen, denen er zugeordnet ist. Um die effektiven Berechtigungen zu ermitteln, wird zunächst geprüft, in welchen Gruppen der Benutzer Mitglied ist. Allen diesen Gruppen ist jeweils ein Funktionsrechtebaum zugewiesen.
Siehe auch Hilfekapitel zu Benutzer- und Rechteverwaltung