Users and roles management subsystem
🌐 This document is available in both English and Ukrainian. Use the language toggle in the top right corner to switch between versions. |
1. Overview
The subsystem that provides management for users, user management, authentication/authorization settings, signle sign-on (SSO), and external Identity Providers integration in the Registry Platform.
2. Subsystem functions
-
User authentication
-
User authorization
-
User and roles management
-
Authentication mechanisms configuration
3. Subsystem technical design
Several authentication ways are available on the Platform:
-
-
software token
-
hardware token
-
4. Subsystem components
Component name | Namespace | Representation in Registry | Source | Repository | Function |
---|---|---|---|---|---|
Users and roles management service |
|
|
3rd-party |
User authentication and authorization |
|
Keycloak operational database |
|
|
3rd-party |
- |
Data and configurations storage |
Digital signature service |
|
|
origin |
gerrit:/mdtu-ddm/low-code-platform/platform/backend/applications/digital-signature-ops |
Digital signature component that utilizes IIT Java signature library capabilities to provide digital signature functionality |
Keycloak operatorр |
|
|
epam-origin |
Authentication service configuration management |
|
OpenShift OAuth |
|
|
3rd-party |
- |
Internal OAuth server in OpenShift that provides authentication and authorization inside the container orchestration platform. Integrates with KeyCloak |
User group synchronization operator |
|
|
3rd-party |
Synchronization of users and roles between Openshift and KeyCloak |
5. Technology stack
The following technologies were used in system design and development:
6. Subsystem quality attributes
6.1. Security
The subsystem was designed with security component in mind, and supports different authentication protocols, including OpenID Connect, OAuth 2.0 та SAML, providing a secure authentication and authorization mechanism.
6.2. Scalability
The subsystem was designed to support a large number of users and extensive traffic, so it can be scaled as required by means of container orchestration platform.
You can learn more in the following section: Container orchestration platform |
6.3. Reliability
Users and roles management subsystem is highly-available, and effectively operates with different workloads. It was designed to handle large numbers of simultaneous user interactions, and efficiently manage user data without drops in performance.
6.4. Observability
Users and roles management subsystem supports incoming requests logging and performance metrics gathering for further analysis via web-interfaces of the corresponding Platform subsystems.
Find more information on subsystems design in the corresponding sections: |