User
Beschreibung
Benutzerverwaltung mit Schnittstelle zu einem OIDC-fähigen Identity Provider.
Folgende Anwendungsfälle werden unterstützt:
- Authentifizierung und Autorisierung von Benutzern.
- Übersicht über in der Anwendung verwendete Benutzer im Raum User.
- Definition von Rollen inklusive zugehöriger 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 erfolgen.
Für die Auswahl eines Users existieren verschiedene Field-Templates resp. Queries:
| 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 angezgeigt 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 |
Markiert Rollen mit auswählbaren Benutzern 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 Components. Sollte nur Admin-Rollen zugewiesen werden. |
SYS_Tools |
Gewährt Zugriff auf Raum Tools. |
SYS_UserMgmt |
Gewährt Zugriff auf Raum UserMgmt. |
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
- DeactivateUsersInactiveForDaysAsync
- DisableHighAttentionForUser
- EnableHighAttentionForUser
- ExportAllUsersForIdp
- RemovePermissionsFromRole
- RemoveRolesFromPermission
- RemoveTenantsFromUser
- RemoveUsergroupsFromUser
- RemoveUsersFromRole
- RemoveUsersFromTenant
- RemoveUsersFromUsergroup
- ResetUserSettings
- SetRequiredTenantPermissionForEntity
Queries
- QueryActiveBusinessUsers
- QueryActiveUsers
- QueryInheritedPermissionsOfRole
- QueryPermissions
- QueryPermissionsAssignedToRole
- QueryPermissionsNotAssignedToRole
- QueryRoles
- QueryRolesAssignedToUser
- QueryRolesNotAssignedToPermission
- QueryRolesNotAssignedToUser
- QueryRolesWithPermissionAssigned
- QuerySupervisors
- QuerySupervisorUserForUser
- QueryTenants
- QueryTenantsAssignedToUser
- QueryTenantsNotAssignedToUser
- QueryUserAssignedToUsergroupName
- QueryUserGroups
- QueryUsergroupsAssignedToUser
- QueryUsergroupsNotAssignedToUser
- QueryUsers
- QueryUsersNotAssignedToRole
- QueryUsersNotAssignedToTenant
- QueryUsersNotAssignedToUsergroup
- QueryUsersWithRoleAssigned
- QueryUsersWithSystemUser
- QueryUsersWithTenantAssigned
- QueryUsersWithUsergroupAssigned
ValueLists
- ValueListAllPermissions
- ValueListAllRoles
- ValueListAllTenants
- ValueListAllUsergroups
- ValueListDateFormats
- ValueListDecimalSeparators
- ValueListExtendableRolePublicId
- ValueListExtendableRolePublicIdForRole
- ValueListGridRowHeights
- ValueListRolesAssignedToUser
- ValueListTenantsForCurrentUser
- ValueListThousendSeparators
- ValueListTimeFormats
- ValueListUsergroupsForCurrentUser
- ValueListUserPublicId
- ValueListWorkspaces
Expression Functions
- GetCurrentUserAccessTokenClaimsAsJsonOrEmpty
- GetFirstNonEmptyValueOrEmpty
- GetRequiredTenantPermissionOrEmpty
- GetSupervisor
- GetUserOrNullByEmployeeCode
- HasUserPermission
- IsUserMemberOfGroup
Tabellen
Configs
| Parameter | Beschreibung | Beispiel |
|---|---|---|
User.RoleClaimName |
Name des Claims, in dem die berechtigten Rollen geliefert werden. | elego.dev.sample.scope |
User.TenantClaimName |
Name des Claims, in dem die berechtigten Tenants geliefert werden. | tenant |
User.UsergroupClaimName |
Name des Claims, in dem die berechtigten Usergroups geliefert werden. | 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. Mit dem Präfix # wird festgelegt, dass das Mapping nur bei der erstmaligen Erstellung eines Users (InitOnly) angewendet wird.
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. Standardmäßig 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 Mapping, die in der Config hinterlegt sind. Diese werden einzeln berücksichtigt. So können auch einzelne Mappings übersteuert werden.