The module is available only in Deckhouse Enterprise Edition.
Authentication types and their configuration
Deckhouse Observability Platform provides various authentication methods to ensure secure access to the system.
The following authentication options are available::
- Email-Password — a standard authentication method where users log in using their email and password. This method is enabled by default.
- External Authentication — authentication method for organizations that prefer to use their existing identity management systems. Deckhouse Observability Platform provides authentication through external sources, the following methods are supported:
- OIDC (OpenID Connect) — a modern authentication standard based on the OAuth 2.0 protocol.
- LDAP/Active Directory using Dex — integration with corporate LDAP or Active Directory directories using Dex as an intermediary. Integration requires additional configuration on the Deckhouse Kubernetes Platform’s side.
- API token — authentication method for interaction with the system via API. This type of authentication is always enabled.
The authentication method is selected using the ui.auth.mode ModuleConfig parameter of the observability-platform
during system installation. When using external authentication (ui.auth.mode: externalAuth
), additional role mapping configuration is required.
The user role model
A user
is an account in the system that has various access rights to different entities within the system. Users interact with the system through the web interface only.
4 types of roles are provided for a user:
- Super Administrator
- Administrator
- User
- Viewer
Table of composition of user role rights:
Entity | Super Administrator | Administrator | User | Viewer |
---|---|---|---|---|
Project | ||||
Dashboards | Full access | Full access | Full access | Read-only |
Data Overview | Full access | Full access | Full access | Read-only |
Alerts | Full access | Full access | Read-only | Read-only |
Triggers | Full access | Full access | Full access | Read-only |
Notification Rules | Full access | Full access | Full access | Read-only |
Outages | Full access | Full access | Full access | Read-only |
Trigers | Full access | Full access | Full access | Read-only |
Record Rules | Full access | Full access | Full access | Read-only |
Silences | Full access | Full access | Full access | Read-only |
Delivery Rules | Full access | Full access | Full access | Read-only |
Usage Statistics | Read-only | Read-only | Read-only | Read-only |
API Tokens | Full access | Full access | No access | No access |
Members | Full access | Full access | Read-only | Read-only |
Integrations | Read-only | Read-only | Read-only | No access |
Datasources | Full access | Full access | No access | No access |
Settings | Full access | Read-only | No access | No access |
Metric Limits | Full access | No access | No access | No access |
Log Limits | Full access | No access | No access | No access |
Space | ||||
Usage Statistics | Read-only | Read-only | Read-only | Read-only |
Members | Full access | Full access | Read-only | Read-only |
API Tokens | Full access | Full access | No access | No access |
Settings | Full access | Read-only | No access | No access |
Organization | ||||
Dashboards | Full access | Read-only | Read-only | Read-only |
Record Rules | Full access | Full access | Full access | Read-only |
Notification Channels | Full access | Full access | Read-only | Read-only |
Triggers | Full access | Read-only | Read-only | Read-only |
Usage Statistics | Read-only | Read-only | Read-only | Read-only |
Members | Full access | Full access | Read-only | Read-only |
API Tokens | Full access | Full access | No access | No access |
Settings | Full access | Read-only | No access | No access |
System Settings | ||||
General Settings | Full access | No access | No access | No access |
Basic Metric Limits | Full access | No access | No access | No access |
Basic Log Limits | Full access | No access | No access | No access |
Role Mapping | Full access | No access | No access | No access |
Members | Full access | No access | No access | No access |
Clusters | Full access | No access | No access | No access |
Audit Logs | Full access | No access | No access | No access |
External authentication
Enabling external authentication
External authentication allows Deckhouse Observability Platform users to use accounts from external systems to log in. To configure the feature, follow these steps:
-
Set the mapping for the Super Administrator role:
- Go to “System Settings” → “Role Mapping Settings”.
- Select “Add Mapping”.
- Fill in the fields:
- Group Name — the identifier of the external group (e.g., “super-administrator”).
- Object Type — select “Entire System”.
- Role — specify “Super Administrator”.
- Confirm your choice by clicking “Update”.
-
Enable external authorization:
-
If using Dex, preliminary configuration of dexProvider is required.
-
If OIDC is enabled, configure oidc settings in the ui.authModuleConfig
observability-platform
.An example:
kubectl patch ModuleConfig observability-platform --type=merge -p <<- 'EOT' { "spec": { "settings": { "ui": { "auth": { "mode": "externalAuth", "provider": "dex", "issuer": "https://dex.dop.example.com", "groupsParamName": "groups" } } } } } EOT
You can find more information about the configuration parameters in the documentation.
-
Enable external authorization using the command:
kubectl patch ModuleConfig observability-platform --type=merge -p <<- 'EOT' { "spec": { "settings": { "ui": { "auth": { "mode": "externalAuth" } } } } } EOT
-
When these steps are complete, the system will be ready for using external authentication.
Setting up role mapping
Follow the steps below to set up role mapping:
- Go to “System Settings” → “Role Mapping Settings”.
- Click “Add Role Mapping”:
- Group Name — the name of the group from the external system (e.g., “admins”).
- Object Type — select the object (“Entire System”, “Organization”, “Space”, “Project”).
- Parent Object (if applicable).
- Object Name (if applicable).
- Role — select one of the role types (Super Administrator, Administrator, User, Read-Only).
API tokens role model
API token is an account in the system that has various access rights to different entities within the system. It interacts with the system exclusively through the API.
Rights | Access Level | Project | Space | Organization |
---|---|---|---|---|
Metrics: read | Read | Yes | Yes | Yes |
Metrics: write | Write | Yes | No | No |
Metrics Triggers and Alerts: read | Read | Yes | Yes | Yes |
Metrics Triggers and Alerts: write | Write | Yes | No | No |
Logs: read | Read | Yes | Yes | Yes |
Logs: write | Write | Yes | No | No |
A multitenant API token is a token whose scope is a workspace, an organization, or several projects at once. Multitenant tokens are limited to the ability to only read monitoring data from the selected scope.