FAM Avanpost

Это руководство описывает настройку сервиса аутентификации Геном на использование внешнего провайдера FAM Avanpost. Инструкция подготовлена на примере FAM Avanpost версии v1.13.6.458.

Для настройки FAM Avanpost необходимы привилегии администратора.

Для настройки Геном необходимы привилегии суперпользователя.

Создание приложения

В FAM Avanpost выполните следующие действия:

  1. На панели навигации нажмите Приложения.

  2. На странице приложений нажмите кнопку + Добавить приложение.

  3. На этапе Основные настройки заполните форму:

    • Наименование: название, которое FAM Avanpost будет использовать для приложения Геном, например, genome-server.

    • Тип: OAuth/OpenID Connect.

  4. Нажмите кнопку Далее.

  5. На этапе Настройки интеграции заполните форму:

    • Secret: секрет, который Геном будет использовать для доступа к FAM Avanpost. Сохраните значение в надёжном месте, оно понадобится при настройке на стороне Геном.

    • Redirect URIs: адрес, на который FAM Avanpost должен перенаправить пользователя при успешной аутентификации.

      Укажите URL следующего вида:

      https://<genome>/after-auth

      Здесь <genome> — доменное имя или IP-адрес узла управления Геном.

      Если узел управления доступен по нескольким адресам, укажите их все, используя в качестве разделителя пробел, например:

      https://genome.example.com/after-auth https://192.168.0.1/after-auth
    • Base URL: IP-адрес или доменное имя узла управления Геном.

    • Logout: оставьте незаполненным.

  6. Нажмите кнопку Далее.

  7. При необходимости на этапе Настройка аутентификации измените шаги и способы аутентификации.

    По умолчанию FAM Avanpost использует настройки, позволяющие выполнить аутентификацию с помощью имени пользователя и пароля.

  8. Нажмите кнопку Далее.

  9. На этапе Завершение установите флаг Сделать приложение активным и нажмите кнопку Сохранить. FAM Avanpost отобразит страницу созданного приложения.

  10. Выберите вкладку Настройки.

  11. В блоке Настройки интеграции:

    1. Скопируйте в буфер обмена значение поля Client ID.

    2. Нажмите кнопку редактирования и укажите параметры интеграции:

      • Post logout redirect URIs: доменное имя или IP-адрес узла управления Геном.

      • Allowed grant types: переведите переключатели Authorization code и Refresh token во включенное положение.

      • Access token type: JSON web token.

      • Ошибки аутентификации: снимите флаг Обрабатывать как ошибки протокола.

    3. Нажмите кнопку Сохранить.

  12. Выберите вкладку Модель доступа.

  13. Нажмите кнопку + и заполните форму:

    • Код: скопированное ранее значение поля Client ID с вкладки Настройки.

    • Описание: Права доступа.

    • Права (Scopes): с помощью кнопки + создайте следующие права доступа:

      Таблица 1. Права администраторов
      Код Описание

      inventory

      Администрирование инвентарей Ansible

      obj_model

      Администрирование объектной модели

      role_model

      Администрирование ролевой модели

      vsn_config

      Администрирование Grafana и конфигурации Геном

  14. Нажмите кнопку Сохранить.

Создание ролей администратора

Чтобы пользователи FAM Avanpost могли администрировать Геном, необходимо в FAM Avanpost создать роли, предоставляющие необходимые права:

Таблица 2. Роли администраторов
Наименование Описание Права доступа

inventory

Администраторы инвентарей Ansible

Администрирование инвентарей Ansible

obj_model

Администраторы объектной модели

Администрирование объектной модели

role_model

Администраторы ролевой модели

Администрирование ролевой модели

vsn_config

Администраторы Grafana и конфигурации Геном

Администрирование Grafana и конфигурации Геном

Чтобы создать роль администратора:

  1. На панели навигации нажмите Сервис.

  2. Нажмите на ссылку Настройка ролей и прав.

  3. Нажмите кнопку + Добавить.

  4. Заполните форму Новая роль:

    • Наименование: значение из колонки Наименование таблицы Роли администраторов.

    • Описание: значение из колонки Описание таблицы Роли администраторов.

    • Объекты доступа и права:

      1. Чтобы отфильтровать записи, введите название приложения (genome-server) и нажмите Enter.

      2. На панели Права доступа выберите право, которое будет предоставлять роль, например, при создании роли obj_model выберите право Администрирование ролевой модели.

  5. Нажмите кнопку Сохранить. FAM Avanpost отобразит таблицу существующих ролей.

Описанным способом создайте все роли, перечисленные в таблице Роли администраторов.

Создание и назначение пользовательских ролей

Геном позволяет создавать роли, дающие доступ только к определённым ресурсам. Такие роли называются пользовательскими. Для их корректной работы нужно выполнить настройки и на стороне Геном, и на стороне FAM Avanpost.

Создание роли в Геном

Чтобы создать пользовательскую роль:

  1. Войдите в Геном с привилегиями администратора ролевой модели.

  2. В главном меню нажмите Мониторинг.

  3. В меню Безопасность  Ролевая модель.

  4. Нажмите кнопку Добавить роль.

  5. Укажите название роли и нажмите кнопку Сохранить. В таблице появится новая колонка с названием созданной роли.

  6. Поставьте флаги на пересечении колонки нужной роли со строками привилегий и нажмите кнопку Сохранить.

Создание роли в FAM Avanpost

Чтобы создать пользовательскую роль в FAM Avanpost и связать её с пользовательской ролью Геном:

  1. На панели навигации нажмите Приложения.

  2. Найдите нужное приложение и нажмите на ссылку с его названием. Avapost отобразит главную страницу приложения.

  3. Выберите вкладку Модель доступа.

  4. В строке Права доступа нажмите на ссылку Изменить.

  5. Нажмите кнопку + и укажите параметры права:

    • Код: название пользовательской роли в Геном.

    • Описание: заполняется произвольно.

  6. Нажмите кнопку Сохранить.

  7. На панели навигации нажмите Сервис.

  8. Нажмите на ссылку Настройка ролей и прав.

  9. Нажмите кнопку + Добавить и укажите параметры роли:

    • Наименование: название пользовательской роли в Геном.

    • Объекты доступа и права:

      1. Чтобы отфильтровать записи, введите название приложения и нажмите Enter.

      2. На панели Права доступа выберите созданное ранее право.

  10. Нажмите кнопку Сохранить.

Назначение роли пользователям и группам

Чтобы назначить роль:

  1. На панели навигации нажмите Сервис.

  2. Нажмите на ссылку Настройка ролей и прав.

  3. Найдите нужную роль и нажмите на ссылку с её названием.

  4. Чтобы назначить роль отдельным пользователям:

    1. Выберите вкладку Пользователи и нажмите кнопку Добавить пользователей.

    2. Выберите нужных пользователей и нажмите кнопку Сохранить.

  5. Чтобы назначить роль группе пользователей:

    1. Выберите вкладку Группы и нажмите кнопку Добавить группы.

    2. Выберите нужные группы и нажмите кнопку Сохранить.

Включение пользователей в группы

Чтобы предоставить доступ к Геном пользователям:

  1. На панели навигации нажмите Группы.

  2. Найдите нужную группу и нажмите на ссылку с её названием.

  3. Во вкладке Пользователи нажмите кнопку Добавить пользователей.

  4. Выберите нужных пользователей и нажмите кнопку Сохранить.

  5. Во вкладке Приложения найдите созданное ранее приложение и переведите переключатель Назначено во включенное положение.

Описанным способом добавьте пользователей в группы приложения и группу lk-client.

Включение пользователей в группу lk-client нужно для того, чтобы пользователи, аутентификация которых завершится ошибкой, имели возможность корректно завершить сессию и попробовать аутентифицироваться снова.

Настройка Геном

Выполните настройки на стороне Геном:

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

  2. Внесите изменения в конфигурационный файл /opt/skala-r/platform-services/configs/auth-service.yml.

    • iam.auth_server: URL сервера FAM Avanpost, например, https://avanpost.example.com/.

    • iam.client_id: идентификатор приложения на стороне FAM Avanpost, например, genome-server.

    • iam.client_secret: секрет клиента.

    • iam.provider: avanpost.

    • iam.realm: пустое значение.

    • iam.request_timeout: ограничение по времени на запрос к FAM Avanpost.

    • iam.tls_insecure_skip_verify: пропуск проверки TLS-сертификатов.

    • iam.token_introspection.enabled: состояние интроспекции (true — включена, false — выключена).

    • iam.token_introspection.interval: длительность интервала дополнительной интроспекции.

    • sync.admin_server: URL сервера FAM Avanpost.

    • sync.fetch_interval: периодичность выполнения синхронизации.

    • sync.tech_auth_client_id: идентификатор клиента, используемый для авторизации сервиса.

    • sync.tech_auth_client_secret: секрет клиента, применяемый для получения токена доступа.

    • sync.tech_auth_password: пароль учётной записи.

    • sync.tech_auth_username: название учётной записи, от имени которой выполняется синхронизация данных.

    Значения ключей iam.request_timeout, iam.token_introspection.interval и sync.fetch_inverval указывайте в виде строки, состоящей из числа и следующего за ним обозначения единицы времени. Например, 30s обозначает 30 секунд, а 2m — 2 минуты.

    Пример настройки
    ---
    # ...
    iam:
      provider: avanpost
      auth_server: "https://avanpost.example.com/"
      realm: ""
      client_id: "genome-server"
      client_secret: "********"
      tls_insecure_skip_verify: true
      request_timeout: 5s
      token_introspection:
        enabled: true
        interval: 10m
    sync:
      admin_server: "http://fam.skala-r.tech"
      tech_auth_client_id: "admin"
      tech_auth_client_secret: "********"
      tech_auth_username: "username"
      tech_auth_password: "password"
      fetch_interval: 1h