OpenMRS ID - Architecture
Â
Introduction
Â
The collective "OpenMRS ID" refers to this system of user management used by the OpenMRS community. An individual user in the system (a person with a username and password) is said to have a single "OpenMRS ID".
Â
The ID subsystem is formed by:
OpenLDAP: the data storage for all OpenMRS ID data for verified users (after checking email). Atlas authenticates directly with LDAP.
Keycloak: Sign up and user manager, connects with OpenLDAP for user storage. Works as SSO for Jira and Confluence cloud, as well as Talk. We use
id.openmrs.org
as the domain for our users.Postfix: redirects Jira and Confluence cloud emails from
id.openmrs.org
to their desired emails.[Deprecated] ID Dashboard: web application that facilitates creation of new OpenMRS IDs, profile editing. Information is retrieved from cache in MongoDB, or loaded from OpenLDAP if not on cache.
Formage: admin screen in ID dashboard to modify users (change group membership for LDAP group). Expected to be replaced soon.
[Deprecated] Atlassian Crowd:Â Legacy system that used to provide user management for Jira and Confluence. It works as a bridge between LDAP and those applications.
Â
Â
LDAP Objects
LDAP is a hierarchical data storage.
The top level node is 'dc=openmrs,dc=org'.Â
All users belong to 'ou=users,dc=openmrs,dc=org', what means that users is an Organization Unit (just a child node like any other) of node 'dc=openmrs,dc=org
'.
A username 'jane_doe
' is represented as "uid=jane_doe,ou=users,dc=openmrs,dc=org
" , which is 'user ID
jane_doe
' child node of node 'ou=users
' of node 'dc=openmrs,dc=org
'.
Â
Full Hierarchy
Â
Â
Â