Модуль доступен только в Deckhouse Enterprise Edition.

Типы аутентификации и их настройка

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 использовать для входа в систему учетные записи из внешних систем. Чтобы настроить функцию, выполните следующие шаги:

  1. Задайте маппинг для роли Суперадминистратор:

    • Войдите в раздел «Системные настройки» → «Настройка маппинга ролей».
    • Выберите «Добавить маппинг».
    • Заполните поля:
      • «Название группы» — идентификатор внешней группы (например, «super-administrator»).
      • «Тип объекта» — выберите «Вся система».
      • «Роль» — укажите «Суперадминистратор».
    • Подтвердите выбор, нажав «Обновить».
  2. Включите внешнюю аутентификацию:

    • Если используется 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
      

После завершения этих шагов система будет готова к использованию внешней аутентификации.

Настройка маппинга ролей

Для настройки маппинга ролей выполните следующие шаги:

  1. Перейдите в «Системные настройки» → «Настройка маппинга ролей».
  2. Нажмите «Добавить маппинг ролей»:
    • «Название группы» — название группы из внешней системы (например, «admins»).
    • «Тип объекта» — выберите объект («Вся система», «Организация», «Рабочее пространство», «Проект»).
    • «Родительский объект» (если применимо).
    • «Название объекта» (если применимо).
    • «Роль» — выберите один из типов роли («Суперадминистратор», «Администратор», «Пользователь», «Только просмотр»).

Ролевая модель API-токенов

API-токен — это учетная запись в системе, имеющая разные права доступа к различным сущностям системы, которые взаимодействуют с системой только через API.

Права Уровень доступа Проект Рабочее пространство Организация
Метрики: чтение Чтение Да Да Да
Метрики: запись Запись Да Нет Нет
Триггеры и алерты (Метрики): чтение Чтение Да Да Да
Триггеры и алерты (Метрики): запись Запись Да Нет Нет
Логи: чтение Чтение Да Да Да
Логи: запись Запись Да Нет Нет

Мультитенантный API-токен — токен, областью действия которого являются рабочее пространство, организация или сразу несколько проектов. Мультитенантные API-токены ограничены возможностью только чтения мониторинговых данных из выбранной области действия.