WINlearn Technische Spezifikation der Benutzerstruktur Gruppe 4
Inhalt User Usergroup Access Control Entry/List User Manager Rights Manager Security Manager
Security manager Rights manager User manager Schematische Darstellung User Usergroup Access control list (ACL) System object Access control entry (ACE)
User Jeder User hat eine eindeutige ID Jeder User muß mindestens einer Usergroup zugeordnet sein Jeder User kann mehreren Usergroups zugeordnet sein User mit dem selben Namen sind erlaubt
Usergroups Eine Usergroup hat eine eindeutige ID Eine Usergroup kann keine oder mehrere zugeordnete User haben Für jeden User wird eine Usergroup mit dem selben Namen wie der Username angelegt, diese wird jedoch implizit verwaltet Rechte können nur auf Usergroups vergeben werden um das Aggregationskonzept (z.B. Gruppe Administratoren) leichter realisieren zu können
User manager Managed User und Usergroups Ist verantwortlich für die Verbindung zwischen Usern und Usergroups Erstellt und löscht die impliziten Usergroups die pro User erstellt werden Hat kein Wissen über sonstige Objekte des Systems Es kann nur einen geben (Singleton)
ACE und ACL Ein ACE spezifiert die Rechte einer Usergroup auf ein System-Objekt Jedes System-Objekt hat einen default ACE und optional pro Usergroup einen weiteren ACE Usergroup ACEs haben höhere Priorität als der default ACE Die Summe aller ACEs eines System-Objekts wird als ACL bezeichnet D.h. Ein System-Objekt hat genau eine ACL
ACE im Detail Mit einem ACE können folgende Rechte gesteuert werden: Lesen Schreiben Erstellen Löschen Es muß gewährleistet sein, das dieses System zu einem späteren Zeitpunkt leicht erweitert werden kann
Rights manager Managed ACEs und ACLs Verwaltet die Rechte von Usergroups auf System-Objekte Hat kein Wissen über User und Usergroups Singleton
Security manager Verbindung zwischen User manager und Rights manager Ermöglicht die Zuordnung von Usergroup Rechten auf System-Objekte Verantwortlich für die Konsistenz zwischen ACLs und Usergroups Singleton
Auswertung der Rechte Ist ein User genau einer Usergroup zugeordnet, so wird der ACE für diese Usergroup – falls kein ACE vorhanden ist wird der default ACE genommen Ist ein User mehr als einer Usergroup zugeordnet, so wird das maximale Zugriffsrecht ermittelt (positive Approach)
System Objekte Klassen (z.B. User Manager) Ausprägungen (z.B. eine Datei) Rekursion (wenn keine Berechtigung auf ein Verzeichnis, dann auch keine Berechtigungen auf den Inhalt des Verzeichnisses)
Concurrent Use Ein User kann zu einem Zeitpunkt nur einmal im System eingelogged sein Tabelle in der DB welche die UserID als auch Login Datum und Zeit festhält Wird auch für die Buddylist verwendet
System Objekte (Beispiele) System Objekte sind (u.a.): User Usergroup User Manager Rights Manager Security Manager ein bestimmtes Verzeichnis eine bestimmte Datei
Tabelle User User UserID: GUID PasswordHash: string FirstName: string LastName: string NickName: string string Phonenumber: string Homepage: string Primary key: UserID
Tabelle Usergroup Usergroup UsergroupID: GUID Name: string Primary key: UsergroupID
Tabelle UsergroupToUser UsergroupToUser UsergroupID: GUID UserID: GUID Primary key: (UsergroupID, UserID)
Tabelle Address Address UserID: GUID Street: string City: string Country: string
Tabelle CurrentUsers CurrentUsers UserID: GUID LoginDate: date LoginTime: time Primary key: UserID
Tabelle AccessControlEntry AccessControlEntry UsergroupID: GUID ObjectID: GUID Rights: integer Primary key: (UsergroupID, ObjectID)