Типы аутентификации и их настройка
Deckhouse Observability Platform предоставляет различные методы аутентификации для обеспечения безопасного доступа к системе.
Доступны следующие варианты аутентификации:
- Email/пароль — cтандартный метод аутентификации, где пользователи входят в систему, используя свой email и пароль. Этот метод включен по умолчанию.
- Внешняя аутентификация — для установки, которые предпочитают использовать свои существующие системы управления идентификационной информацией. Deckhouse Observability Platform поддерживает следующие методы при аутентификации через внешние источники:
- OIDC (OpenID Connect) — современный стандарт аутентификации, основанный на протоколе OAuth 2.0.
- LDAP / Active Directory c использованием Dex — интеграция с корпоративными каталогами LDAP или Active Directory с использованием Dex как посредника. Для интеграции требуется дополнительная настройка со стороны Deckhouse Kubernetes Platform.
- API-токен — метод аутентификации для взаимодействия с системой через API. Данный вид аутентификации включен всегда.
Выбор метода аутентификации осуществляется с помощью параметра ui.auth.mode ModuleConfig observability-platform при установке системы. При использовании внешней аутентификации (ui.auth.mode: externalAuth) требуется дополнительная настройка маппинга ролей.
Ролевая модель пользователей
Пользователь — это учетная запись в системе, имеющая разные права доступа к различным сущностям системы. Пользователи взаимодействуют с системой только через веб-интерфейс.
Для пользователя предусмотрены 4 типа ролей:
- Суперадминистратор
- Аудитор
- Администратор
- Пользователь
- Только просмотр
Состав прав доступа для каждой роли приведен в таблице.
Таблица состава прав ролей пользователей:
| Сущность | Суперадминистратор | Администратор | Пользователь | Аудитор | Только просмотр |
|---|---|---|---|---|---|
| Проект | |||||
| Дашборды | Полный доступ | Полный доступ | Полный доступ | Только чтение | Только чтение |
| Обзор данных | Полный доступ | Полный доступ | Полный доступ | Только чтение | Только чтение |
| Уведомления | Полный доступ | Полный доступ | Только чтение | Только чтение | Только чтение |
| Триггеры | Полный доступ | Полный доступ | Полный доступ | Только чтение | Только чтение |
| Производные метрики | Полный доступ | Полный доступ | Полный доступ | Только чтение | Только чтение |
| Правила нотификаций | Полный доступ | Полный доступ | Полный доступ | Только чтение | Только чтение |
| Отключенные уведомления | Полный доступ | Полный доступ | Полный доступ | Только чтение | Только чтение |
| Правила уведомлений | Полный доступ | Полный доступ | Полный доступ | Только чтение | Только чтение |
| Статистика использования | Только чтение | Только чтение | Только чтение | Только чтение | Только чтение |
| API-токены | Полный доступ | Полный доступ | Нет доступа | Только чтение | Нет доступа |
| Пользователи | Полный доступ | Полный доступ | Только чтение | Только чтение | Только чтение |
| Интеграции | Только чтение | Только чтение | Только чтение | Только чтение | Нет доступа |
| Настройки | Полный доступ | Только чтение | Нет доступа | Только чтение | Нет доступа |
| Лимиты (метрики) | Полный доступ | Нет доступа | Нет доступа | Только чтение | Нет доступа |
| Лимиты (логи) | Полный доступ | Нет доступа | Нет доступа | Только чтение | Нет доступа |
| Удаление проекта | Полный доступ | Полный доступ | Нет доступа | Только чтение | Нет доступа |
| Рабочее пространство | |||||
| Статистика использования | Только чтение | Только чтение | Только чтение | Только чтение | Только чтение |
| Пользователи | Полный доступ | Полный доступ | Только чтение | Только чтение | Только чтение |
| API-токены | Полный доступ | Полный доступ | Нет доступа | Только чтение | Нет доступа |
| Настройки | Полный доступ | Только чтение | Нет доступа | Только чтение | Нет доступа |
| Создание проекта | Полный доступ | Полный доступ | Нет доступа | Только чтение | Нет доступа |
| Удаление проекта | Полный доступ | Полный доступ | Нет доступа | Только чтение | Нет доступа |
| Вся система | |||||
| Дашборды | Полный доступ | Только чтение | Только чтение | Только чтение | Только чтение |
| Каналы нотификаций | Полный доступ | Полный доступ | Только чтение | Только чтение | Только чтение |
| Триггеры | Полный доступ | Только чтение | Только чтение | Только чтение | Только чтение |
| Статистика использования | Только чтение | Только чтение | Только чтение | Только чтение | Только чтение |
| Пользователи | Полный доступ | Полный доступ | Только чтение | Только чтение | Только чтение |
| API-токены | Полный доступ | Полный доступ | Нет доступа | Только чтение | Нет доступа |
| Настройки | Полный доступ | Только чтение | Нет доступа | Только чтение | Нет доступа |
| Создание проекта | Полный доступ | Полный доступ | Нет доступа | Только чтение | Нет доступа |
| Удаление проекта | Полный доступ | Полный доступ | Нет доступа | Только чтение | Нет доступа |
| Создание рабочего пространства | Полный доступ | Полный доступ | Нет доступа | Только чтение | Нет доступа |
| Удаление рабочего пространства | Полный доступ | Полный доступ | Нет доступа | Только чтение | Нет доступа |
| Системные настройки | Только чтение | ||||
| Общие настройки | Полный доступ | Нет доступа | Нет доступа | Только чтение | Нет доступа |
| Базовые лимиты (метрики) | Полный доступ | Нет доступа | Нет доступа | Только чтение | Нет доступа |
| Базовые лимиты (логи) | Полный доступ | Нет доступа | Нет доступа | Только чтение | Нет доступа |
| Маппинг ролей | Полный доступ | Нет доступа | Нет доступа | Только чтение | Нет доступа |
| Пользователи | Полный доступ | Нет доступа | Нет доступа | Только чтение | Нет доступа |
| Кластеры | Полный доступ | Нет доступа | Нет доступа | Только чтение | Нет доступа |
| Аудит (логи) | Полный доступ | Нет доступа | Нет доступа | Только чтение | Нет доступа |
Внешняя аутентификация
Включение внешней аутентификации
Внешняя аутентификация позволяет пользователям Deckhouse Observability Platform использовать для входа в систему учетные записи из внешних систем. Чтобы настроить функцию, выполните следующие шаги:
-
Задайте маппинг для роли Суперадминистратор:
- Войдите в раздел «Системные настройки» → «Настройка маппинга ролей».
- Выберите «Добавить маппинг».
- Заполните поля:
- «Название группы» — идентификатор внешней группы (например, «super-administrator»).
- «Тип объекта» — выберите «Вся система».
- «Роль» — укажите «Суперадминистратор».
- Подтвердите выбор, нажав «Обновить».
-
Включите внешнюю аутентификацию:
-
Если используется Dex, требуется предварительная настройка провайдера аутентификации с помощью ресурса dexProvider.
-
Если включен OIDC, необходимо задать его настройки в секции параметров ui.auth ModuleConfig
observability-platform.Например:
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Подробности о параметрах настройки можно найти в документации.
-
Включите внешнюю аутентификацию, используя команду:
kubectl patch ModuleConfig observability-platform --type=merge -p <<- 'EOT' { "spec": { "settings": { "ui": { "auth": { "mode": "externalAuth" } } } } } EOT
-
После завершения этих шагов система будет готова к использованию внешней аутентификации.
Настройка маппинга ролей
Для настройки маппинга ролей выполните следующие шаги:
- Перейдите в «Системные настройки» → «Настройка маппинга ролей».
- Нажмите «Добавить маппинг ролей»:
- «Название группы» — название группы из внешней системы (например, «admins»).
- «Тип объекта» — выберите объект («Вся система», «Рабочее пространство», «Проект»).
- «Родительский объект» (если применимо).
- «Название объекта» (если применимо).
- «Роль» — выберите один из типов роли («Суперадминистратор», «Администратор», «Пользователь», «Только просмотр»).
Ролевая модель API-токенов
API-токен — это учетная запись в системе, имеющая разные права доступа к различным сущностям системы, которые взаимодействуют с системой только через API.
Областью действия токена может быть вся система, одно или несколько рабочих пространств, один или несколько проектов.
Мультитенантный API-токен — токен, областью действия которого являются рабочее пространство или несколько проектов. Мультитенантные API-токены ограничены возможностью только чтения мониторинговых данных из выбранной области действия.
| Права | Описание | Мультитенантный |
|---|---|---|
| Метрики: чтение | Позволяет читать метрики проекта(ов) | Да |
| Метрики: запись | Позволяет писать метрики проекта | Нет |
| Логи: чтение | Позволяет читать логи проекта(ов) | Да |
| Логи: запись | Позволяет писать логи проекта | Нет |
| Управление рабочими пространствами | Позволяет выполнять API-вызовы рабочих пространств | Да |
| Управление проектами | Позволяет выполнять API-вызовы проектов | Да |
| Управление триггерами и производными метриками | Позволяет выполнять API-вызовы триггеров и производных метрик | Да |
| Управление дашбордами | Позволяет выполнять API-вызовы дашбордов | Да |
| Управление уведомлениями | Позволяет выполнять API-вызовы правил и каналов уведомлений | Да |
Токены для управления (Управление рабочими пространствами, проектами и т.д.) не может иметь прав на метрики или логи.