...
- UserId - internal use for OneList;
- UserName - a unique key for every user. Its value is based on the customer's main user sourceThis is mapped to the common user ID of the organization;
- Profile - user profile, e.g. first name, last name, email;
- Manager - optional, the user's reporting manager;
Identity the main user source
It is important to identify which system OneList is the customer's main user source. The main user source is the source of truth of user information and is used to propagate users in other systems in the organisation. Generally, it is the organisation's Identity Provider system (IDP), e.g. active directory, Azure AD, or the ERP system, e.g. SAP.
OneList creates new user accounts based on the main user source and synchronise user profile with the main user source periodically or on demand.
Identity how users are linked between OneList and other source systems
The OneList Adapter for each source system is responsible for linking the source system user with OneLIst user account. Generally a user can be automatically linked by his or hers UserName or Email.
...
Linking OneList User with IdP and Source Sytem User
For OneList to automatically surface tasks to user, it needs to establish the above link between the user’s IDP login and his/her source system user id. The OneList username is the key in this link. The general process of identifying the value for the OneList username is:
- Identify and agree on the common user identifier in the organisation. SAMAccountName and UPN are commonly used as the user id;
- Identify the claim from the Identify Provider that holds the common user id;
- Verify each source system if it can map its user account to this common user id. The adapter is responsible for producing the user mapping for OneList.
If a source system is unable to provide the user mapping then OneList will prompt user to log on to that source system once before tasks are surfaced from that source system.
Where is the user linkage saved and how it is used
The linking between OneList user and external user is saved in the ExternalLogin table in the RoleManager database. The user linking information in this table is used by the RoleManager external log in process and the OneList task generation and task action processes:
- When user logs in on via external Idp account, RoleManager OneLIst uses the Idp's use id to find the RoleManager OneList user id in the ExternalLogin table and grants access to the user;
- When OneList receives a task from Source System, it first uses the source system user id to find to find the RoleManager user, then finds the OneList user from the RoleManager userid in the ExternalLogin table, then assigns the task to the OneList user. The reverse lookup process is used to identify the source system user id when user actions a task.
OneList user account creation
...
There are two scenarios that an OneList user account is created:
- When a new task assignee is identified in a source system. In this case, the OneList Adapter makes a query to OneList after every task upload, to find if there is any user for that source system requires linking to OneList user account. If OneList returns a list of the source system user id then the OneList Adapter can post the full detail of those uses to OneList. OneList then creates new user account if require and links the source system user id with the OneList user account. The prerequisite of this scenario is that the OneList adapter has full information of the use account including UserName and email.
- When a user logs on to OneList (via RoleManager) for the first time. In this case, the user either register a new account (via the Register link on the login page), or after authenticated by the organisation's Idp. If using Idp, RoleManager goes through the external log in process discussed above and creates new user account if no existing user is found for the Idp user login.
...
- the Idp
...
- user login
...
- Find existing user by UserName if a particular Idp claim is configured for user name match. Common claims for this purpose are SAMAccountName, UPN, prefered_username.
- Find existing user by email if the above user name claim is not configured.
- If an existing user is found, then update the ExternalLogin record for the user, otherwise, create a new user and insert the record to the ExternalLogin table.
Claims required from source system to setup OneList user profile
...