Skip to content

User

Beschreibung

Funktionalität

Die Benutzerverwaltung stellt die Schnittstelle zu einem OIDC-fähigen Identity Provider (IdP) bereit.

Folgende Anwendungsfälle werden unterstützt:

  • Authentifizierung und Autorisierung von Benutzern.
  • Übersicht über die in der Anwendung verwendeten Benutzer im Raum User.
  • Definition von Rollen inklusive der zugehörigen Rechte, Benutzergruppen und Tenants.
  • Zuweisung von Rollen, Benutzergruppen und Tenants zu Benutzern im Betrieb.

Rollen, Rechte, Benutzergruppen und Tenants werden im Raum System unter Rollen verwaltet. Die Zuweisung zu einem Benutzer kann entweder aus der jeweiligen Parametrierung oder direkt beim Benutzer selbst erfolgen.

Für die Auswahl von Benutzern stehen verschiedene Field-Templates bzw. Queries zur Verfügung.:

Field-Template Query Verwendung Beschreibung
SYS_FT_BusinessUser QueryActiveBusinessUsers Raum MyWork (Todo, Mailbox) Zeigt aktive (IsActive = true) Business-User (IsSystemUser = false) an. Mit Parameter OnlyAssignable = true kann definiert werden, dass nur User mit einer zugewiesenen Rolle mit Berechtigung SYS_Assignable angezeigt werden.
SYS_FT_User QueryActiveUsers Raum Operation (Todo, Process) Zeigt aktive (IsActive = true) User an.
SYS_FT_UserWithSystemUser QueryUsersWithSystemUser Raum Operation (Audit, User) Zeigt alle vorhandenen User an.

Folgende System-Berechtigungen sind definiert:

Berechtigung Verwendung
SYS_Assignable Kennzeichnet Rollen, deren Benutzer auswählbar sind für Todos, etc.
SYS_Components Gewährt Zugriff auf Raum Components. Sollte nur Admin-Rollen zugewiesen werden.
SYS_Dashboard Gewährt Zugriff auf Raum Dashboard.
SYS_MyWork Gewährt Zugriff auf Raum MyWork.
SYS_Operations Gewährt Zugriff auf Raum Operations.
SYS_Queries Gewährt Zugriff auf Raum Queries.
SYS_ShowGuiInfo Zeigt Gui-Info an. Empfohlen Für Admin- und Support-Rollen
SYS_System Gewährt Zugriff auf Raum System. Sollte nur Admin-Rollen zugewiesen werden.
SYS_Tools Gewährt Zugriff auf Raum Tools.
SYS_UserMgmt Gewährt Zugriff auf Raum UserMgmt.

Überwachung im Betrieb

im Raum Betrieb werden alle Benutzer angezeigt. Hier werden die nicht vom IDP gelieferten Benutzer-Eigenschaften gepflegt und den Benutzern Rollen, User-Gruppen und Tenant-Berechtiungen zugewiesen.

Bausteine

Entities

  • IPermission

  • IRole

  • IRolePermission

  • ITenant

  • IUser

  • IUserActivity

  • IUsergroup

  • IUserRole

  • IUserTenant

  • IUserUsergroup

Activities

  • AssignPermissionsToRole

  • AssignRolesToPermission

  • AssignTenantsToUser

  • AssignUsergroupsToUser

  • AssignUsersToRole

  • AssignUsersToTenant

  • AssignUsersToUsergroup

  • ChangeCurrentRole

  • ChangeProfilePicture

  • ChangeSignaturePicture

  • ChangeUserCultureString_De

  • ChangeUserCultureString_En

  • ChangeUserCultureString_Fr

  • ChangeUserCultureString_It

  • ChangeUserLoginName

  • CreateRole

  • CreateTenant

  • CreateUsergroup

  • DeactivateInactiveUserSince

  • DeactivateInactiveUsersTask

  • DeActivateRole

  • DeActivateUser

  • DeActivateUsergroup

  • DeactivateUsersInactiveForD...

  • DisableHighAttentionForUser

  • EnableHighAttentionForUser

  • ExportAllUsersForIdp

  • RemovePermissionsFromRole

  • RemoveRolesFromPermission

  • RemoveTenantsFromUser

  • RemoveUsergroupsFromUser

  • RemoveUsersFromRole

  • RemoveUsersFromTenant

  • RemoveUsersFromUsergroup

  • ResetUserSettings

  • SetRequiredTenantPermission...

Queries

  • QueryActiveBusinessUsers

  • QueryActiveUsers

  • QueryInheritedPermissionsOf...

  • QueryPermissions

  • QueryPermissionsAssignedToRole

  • QueryPermissionsNotAssigned...

  • QueryRoles

  • QueryRolesAssignedToUser

  • QueryRolesNotAssignedToPerm...

  • QueryRolesNotAssignedToUser

  • QueryRolesWithPermissionAss...

  • QuerySupervisors

  • QuerySupervisorUserForUser

  • QueryTenants

  • QueryTenantsAssignedToUser

  • QueryTenantsNotAssignedToUser

  • QueryUserAssignedToUsergrou...

  • QueryUserGroups

  • QueryUsergroupsAssignedToUser

  • QueryUsergroupsNotAssignedT...

  • QueryUsers

  • QueryUsersNotAssignedToRole

  • QueryUsersNotAssignedToTenant

  • QueryUsersNotAssignedToUser...

  • QueryUsersWithRoleAssigned

  • QueryUsersWithSystemUser

  • QueryUsersWithTenantAssigned

  • QueryUsersWithUsergroupAssi...

ValueLists

  • ValueListAllPermissions

  • ValueListAllRoles

  • ValueListAllTenants

  • ValueListAllUsergroups

  • ValueListDateFormats

  • ValueListDecimalSeparators

  • ValueListExtendableRolePubl...

  • ValueListExtendableRolePubl...

  • ValueListGridRowHeights

  • ValueListRolesAssignedToUser

  • ValueListTenantsForCurrentUser

  • ValueListThousendSeparators

  • ValueListTimeFormats

  • ValueListUsergroupsForCurre...

  • ValueListUserPublicId

  • ValueListWorkspaces

Expression Functions

  • GetCurrentUserAccessTokenCl...

  • GetFirstNonEmptyValueOrEmpty

  • GetRequiredTenantPermission...

  • GetSupervisor

  • GetUserOrNullByEmployeeCode

  • HasUserPermission

  • IsUserMemberOfGroup

Tabellen

Configs

Parameter Beschreibung Beispiel
User.RoleClaimName Name des Claims, der die berechtigten Rollen enthält. elego.dev.sample.scope
User.TenantClaimName Name des Claims, der die berechtigten Tenants enthält. tenant
User.UsergroupClaimName Name des Claims, der die berechtigten Usergroups enthält. usergroup
User.PropertyClaimMappings Durch Zeilenumbruch getrennte Mappings für Userclaims. Format: [User-Property]=[Mapping-Expression] Siehe PropertyClaimMappings

PropertyClaimMappings

In den Mapping-Expressions können die vom IDP gelieferten Claims als Variablen verwendet werden.

Die Zuweisung ist wie folgt: [User-Property]=[Claim oder Expression] (z.B. Phone=phone).

Mit dem Präfix # wird festgelegt, dass das Mapping nur bei der erstmaligen Erstellung eines Users (InitOnly) angewendet wird (z.B. #Phone=phone).

Ist eine Expression fehlerhaft, wird für das betroffene Mapping der Default-Wert verwendet und zusätzlich eine Exception im Logfile protokolliert.

Werden keine Claims-Mappings definiert, verhält sich das System wie bisher. Soll ein Default-Mapping überschrieben werden, wird eine Mapping ohne Zuweisung erstellt (z.B. Phone= ). Standardmässig sind folgende Mappings hinterlegt:

#SubjectId=sub
#CultureString=GetFirstNonEmptyValueOrEmpty(locale;GetCurrentCulture())
#PublicId=if(Len(GetFirstNonEmptyValueOrEmpty(preferred_username;email;appid;azp))>32;'';GetFirstNonEmptyValueOrEmpty(preferred_username;email;appid;azp))
#Function=function
#Department=department
LoginName=if(Len(GetFirstNonEmptyValueOrEmpty(preferred_username;email;appid;azp))>32;GetFirstNonEmptyValueOrEmpty(preferred_username;email;appid;azp);GetFirstNonEmptyValueOrEmpty(preferred_username;nickname;email;appid;azp))
Name=GetFirstNonEmptyValueOrEmpty(family_name;name)
FirstName=given_name
Phone=phone
Email=email

Info

Vorrgang haben immer die Mappings, die in der Config hinterlegt sind. Diese werden einzeln berücksichtigt. So können auch einzelne Mappings übersteuert werden.