Перейти к содержимому

Инструкция по интеграции OIDC-провайдера Identity Blitz и Платформы Боцман ​

Шаг 1: Подготовка и базовая настройка Identity Blitz ​

  1. Правильно задайте домен при установке

Внимание

Домен, указанный при первоначальной настройке Blitz, используется во всей последующей конфигурации. Изменить его на следующих этапах будет крайне затруднительно.

  1. Активируйте и настройте встроенный LDAP-сервер (389-ds)

    • Identity Blitz по умолчанию использует встроенное хранилище (build-in), которое не поддерживает группы. Для работы с группами необходимо подключить LDAP.
    • В инструкции по установке Blitz рекомендуется поставить встроенный 389-ds, но его недостаточно просто установить — требуется дополнительная настройка.
  2. Подготовьте LDAP-хранилище с помощью скриптов из дистрибутива Blitz

    • В дистрибутиве Identity Blitz есть папка scripts.
    • Запустите скрипты по порядку:
      • init-скрипт: Инициализирует домен, создает служебного пользователя (например, tree-reader) и настраивает базовые политики паролей.
      • group-скрипт (например, grlb): Подготавливает LDAP к работе с группами. Он создает необходимую структуру (Organizational Unit Groups), стандартную группу (например, ORGS) и настраивает атрибуты.

Внимание

Без выполнения этих скриптов функционал групп в Blitz работать не будет.

Шаг 2: Настройка хранилища данных (Data Source) в Blitz ​

  1. Добавьте новое хранилище.

    • В веб-интерфейсе Blitz перейдите в раздел Data Sources.
    • Нажмите "Добавить" и выберите тип "LDAP".

    blitz_source
    blitz_connect

  2. Заполните параметры подключения к LDAP.

    • Host/Port: Укажите хост и порт вашего LDAP-сервера (для 389-ds это localhost и стандартный порт).
    • Базовый DN: Базовый Distinguished Name, где находятся пользователи (напр., cn=users,dc=blitz,dc=local).
    • Пользователь (DN) & Пароль: Учетные данные пользователя с правами на чтение в LDAP (например, созданный tree-reader). Рекомендуется использовать отдельного служебного пользователя, а не суперадминистратора.
  3. Настройте маппинг атрибутов (Attribute Mapping).

Внимание

Это ключевой этап. Необходимо сопоставить атрибуты пользователя в LDAP с внутренними атрибутами Blitz.

*   **Пример маппинга:**
    *   `sub` (логин в Blitz) -> `cn` (Common Name в LDAP)
    *   `email` -> `mail`
    *   `given_name` -> `givenName`
*   Убедитесь, что для объекта класса пользователя в LDAP выбран расширенный класс, например, `organizationalPerson`, который поддерживает больше атрибутов и связь с группами.

![blitz_attribute](/3.4.3/images/expluatation/authentication/blitz/blitz_attribute.png)  
  1. Добавьте вычисляемый атрибут email_verified.

    • Боцман требует в JWT-токене наличие поля email_verified.
    • В Blitz перейдите в настройки атрибутов пользователя.
    • Добавьте новый атрибут:
      • Имя: email_verified
      • Тип: Boolean
      • Значение: Всегда true (Вычисляемый атрибут).

    blitz_attribute_2

Шаг 3: Настройка OAuth 2.0 / OIDC клиента в Blitz для Боцман ​

  1. Создайте нового клиента.

    • В веб-интерфейсе Blitz перейдите в раздел Приложения
    • Нажмите "Добавить приложение".
  2. Заполните основные параметры приложения:

    • Идентификатор: Уникальный идентификатор (напр., bootsman). Это неизменяемое поле, запишите его.
    • Client Secret: В разделе «Настройки взаимодействия с приложением» сгенерируйте и сохраните сложный секрет. Он понадобится для настройки Боцман.
    • Friendly Name / Domain: Внутреннее понятное имя и домен (напр., bootsman-test).
  3. Настройте Redirect URIs.

    • Это адреса, на которые Blitz может перенаправлять после аутентификации.
    • Обязательно укажите: https://<ВАШ_ДОМЕН_БОЦМАН>/verify-auth
    • Для удобства можно также указать общий домен с wildcard: https://<ВАШ_ДОМЕН_БОЦМАН>/* (это менее безопасно).
  4. Проверьте Разрешения.

    • Убедитесь, что клиенту передаются стандартные поля OIDC. Минимальный необходимый набор:
      • email
      • groups
      • profile
      • openid
    • Настройте маппинг атрибутов в полях (в разделе Scopes настроек Blitz), чтобы убедиться, что email и profile попадают в нужные поля.

    blitz_app_settings

  5. Настройте маппинг в JWT-токене.

    • В настройках клиента найдите раздел, отвечающий за содержимое ID-токена (JWT Claims).
    • Убедитесь, что передаются следующие поля. Это критически важно для правильного отображения пользователя в Боцман:
      • name
      • email
      • email_verified (был создан на шаге 2.4)
      • groups

    blitz_token

Шаг 4: Настройка аутентификации в Боцман ​

  1. Перейдите в настройки аутентификации Боцман.

    • В Боцмане откройте глобальные настройки (Settings).
    • В меню «Пользователи» перейдите в раздел «Провайдеры авторизации» и выберите провайдер аутентификации Identity Blitz.
  2. Заполните параметры провайдера данными из Blitz:

    • issuer: Базовый адрес переадресации из Шага 3.
    • Client ID: заданныйClient ID из Шага 3.2.
    • Client Secret: Сгенерированный Client Secret из Шага 3.2.
    • RedirectURI: https://<ВАШ_ ДОМЕН _БОЦМАН>/verify-auth адрес из «Префиксы ссылок возврата»
    • Scopes: email groups profile openid.

    Пример конфигуарции подключения: blitz_yaml_config

  3. Сохраните настройки и протестируйте вход.

Шаг 5: Включение и настройка синхронизации групп в Blitz ​

Внимание

Этот шаг необходим, чтобы группы из LDAP отображались в интерфейсе Blitz и, как следствие, передавались в Боцман.

  1. Включите функционал групп через конфигурационный файл.

    • Функционал групп по умолчанию отключен. Его необходимо включить через главный конфигурационный файл Blitz (blitz-config.json).
    • Найдите в файле секцию "groups". Она может быть закомментирована (например, с помощью символа _ в начале).
    • Раскомментируйте эту секцию, удалив символ комментария, и сохраните файл. После этого в интерфейсе Blitz должна появиться вкладка "Группы".
  2. Настройте хранилище для групп.

    • После включения функционала необходимо "привязать" только что созданное LDAP-хранилище (из Шага 2) к системе групп Blitz.
    • В конфигурационном файле, в секции groups, укажите store_id, соответствующий вашему LDAP-хранилищу, и настройте member_of и base_dn для корректного поиска групп.

Часто задаваемые вопросы: ​

  1. Пользователи в Blitz не отображаются без поиска.

    • Проблема: В Blitz на странице пользователей список пуст.
    • Решение: Используйте поиск с символом * (звездочка), чтобы отобразить всех пользователей.
  2. Проблемы с SSL-сертификатами.

    • Проблема: Ошибки из-за невалидных или самоподписанных сертификатов.
    • Решение:
      • Рекомендуемый путь: Используйте общий центр сертификации (например, cert-manager, входящий в состав Боцман) для выпуска валидных сертификатов как для Blitz, так и для Боцман. Настройте Ingress для обоих продуктов, чтобы использовать эти сертификаты.
      • Альтернатива: Можно настроить встроенный в Blitz Nginx, следуя инструкции из дистрибутива, но это требует более глубокой настройки маршрутизации между компонентами Blitz.
  3. Группы не отображаются в Blitz.

    • Убедитесь, что вы:
      • Выполнили скрипты инициализации групп (Шаг 1).
      • Включили функционал групп в файле конфигурации (Шаг 5).
      • Правильно настроили хранилище для групп (Шаг 5).
      • Правильно указали Group Base DN в настройках Data Source (Шаг 2).

Команда Боцман