===== LicenceGroup ===== Die Lizenzgruppe umfasst mehrere Mandanten und verwaltet die Lizenzen für diese. Über die Lizenzgruppe wird bestimmt, wieviele Lizenzen erworben wurden, wie lange diese gültig sind((To-Do)), und für welche Mandanten diese gelten. Ein Lizenzschlüssel, der einen Signatur der Lizenzgruppe gleich kommt, und nur von der TAV Enterprise Software erstellt werden kann, sorgt dafür, dass die Lizenzen zu einer Gruppe nicht vom Kunden manipuliert werden können. \\ \\ Dabei wird der Lizenzschlüssel unter der Zugabe von Salt gehasht. Noch sicherer wäre eine asymmetrische Verschlüsselung des Schlüssels, aber wegen der Rückwärtskompatibilität zu PRO·M 1.0 wird der Hash beibehalten. \\ \\ Die Lizenzgruppe wird über ein Master Konto angelegt, über einen zusätzlichen Dienst, der extra hierfür eingeschaltet wird, und danach wieder abgeschaltet werden sollte. Das Master Konto hat ein Kennwort, dass der Kunde vergeben kann und in der Konfigurationsdatei zu dem Dienst speichern kann. Da der Kunde keinen eigenen Lizenschlüssel erstellen kann, ist die Sicherheit für die TAV Enterprise Software GmbH dadurch gegeben, dass der Lizenzschlüssel selbst sicher ist, und die Sicherheit für den Kunden ist dadurch gegeben, dass das Master Konto Kennwort nur ihm bekannt ist und er den Dienst ein und ausschalten kann. ==== Identität ==== Die Lizenzgruppe wird über den Namen identifiziert. ==== Inhalte ==== Die Lizenzgruppe beinhaltet eine Liste von LicenceGroupTenant Objekten. Ein LicenceGroupTenant Objekt besteht aus der Id des Mandanten und der Domäne für die Anmeldung. DAS IST NOCH FALSCH!!! Hier gehört nur die Id rein, und falls die Authentifizierung eine Domäne für die Anmeldung benötigt((username@domain)), dann muss der Tenant aus Entity|Tenant eine Rolle in dem Authentifizierungs Modul erhalten. ==== Regeln ==== Keine Nennenswerten Regeln. ==== Befehle ==== * AddLicenceGroup: Lizenzgruppe-Rolle einer Person hinzufügen * ChangeLicenceGroupName: Änderung des Kontonamens, z.B um ein doppelt vergebenen Namen zu korrigieren. * AllowLicenceGroupFullImpersonation: das Recht geben, alle anderen Konten zu impersonieren. * DenyLicenceGroupFullImpersonation: das Recht nehmen, alle anderen Konten zu impersonieren. * LockLicenceGroup: Das Konto sperren. Egal, welche Authentifizierungsmethode umgesetzt wird, hierauf sollte beim Authentifizieren immer geprüft werden. Die integrierte Authentifizierung sperrt z.B. das Konto nach 5 Fehlversuchen((Die Logik ist eingebaut, das Ergebnis nicht, weil PRO·M 1.0 noch keine Sperren nach N Fehlversuchen kennt)) * UnlockLicenceGroup: Das Konto entsperren, z.B. nach einer automatischen Sperre und nachdem das Kennwort zurück gesetzt wurde((Bzw. in demselben Batch, da beide Befehle auf dasselbe Hauptaggregate gehen)). ==== Ereignisse ==== * LicenceGroupAdded * LicenceGroupChanged * LicenceGroupAllowedFullImpersonation * LicenceGroupDeniedFullImpersonation * LicenceGroupLocked * LicenceGroupUnlocked ==== Workflow ==== I.d.R. hat ein Lizenzgruppe ohne Authentifizierungsmechanismen wenig Sinn. Somit wird meist der Befehl AddLicenceGroup in einem Batch mit dem Befehl AddLicenceGroupAuthentication((Oder einem ähnlichen)) abgeschickt, damit das Konto gleich mit Kennwort oder einem anderen Authentifizierungsmechanismus erstellt wird. Es kann auch gleich mit der Person erstellt werden, da das Konto ja eine Rolle der Person ist, und somit Teil desselben Haupt Aggregates ist.