Basis Virtual Security

Инструкция подготовлена на примере Basis Virtual Security версии 3.1.4 от 21.06.2024.

Термины и определения

Basis Virtual Security, BVS

Продукт являющийся провайдером аутентификации и авторизации.

Authentication

Идентификация и проверка пользователя.

Authorization

Предоставление доступа пользователю.

Домен

Пространство для управления пользователями, приложениями, ролями и группами. Пользователь принадлежит к конкретному домену. Домены изолированы друг от друга. Для пользователей Визиона достаточно одного домена.

Клиент

Приложение, которое может обращаться к BVS для аутентификации пользователя.

Клиентская система

Объект, который содержит совокупность параметров, необходимых для связи с определённым приложением.

Users

Пользователи, которые могут войти в вашу систему. Им можно назначить членство в группе и определённые роли.

Roles

Определяют тип или категорию пользователя.

Читатель, писатель — типичные роли.

Как правило, приложения назначают доступ и разрешения конкретным ролям, а не отдельным пользователям.

Приложения Визиона, требующие Клиентских систем:

  • Vision Core

Добавление домена

Если нужный домен уже есть в списке, перейдите к следующему пункту инструкции.
  1. В разделе Домены нажмите кнопку Создать.

  2. Заполните обязательные поля (например "vision" для имени домена) и нажмите кнопку Создать. Созданный домен должен появиться в списке.

Добавление клиентской системы для vision_core

  1. Выберите необходимый домен в выпадающем списке слева вверху.

  2. Нажмите на раздел Безопасность и в открывшемся меню выберите Клиентские системы.

  3. На открывшейся странице нажмите кнопку Создать.

  4. Заполните форму Создание клиентской системы:

    • Идентификатор — идентификатор клиентской системы.

    • Наименование — название клиентской системы в Визион.

    • Описание — опциональное описание клиентской системы.

    • Тип доступа — Конфиденциальный.

    • Адрес — IP-адрес и порт для подключения к клиентской системе, например:

      https://192.168.191.219/
    • Активность — включено.

  5. Нажмите кнопку Создать.

Изменение параметров клиентской системы для vision_core

Откройте страницу со списком клиентских систем (Безопасность  Клиентские системы), выберите созданную клиентскую систему и на вкладке Основное нажмите кнопку Изменить. Заполните поля:

Поле Описание Пример заполнения

Типы взаимодействия

Типы взаимодействия, разрешённые для клиентской системы

Authorization Code Flow — стандартное OpenID Connect перенаправление, основанное на аутентификации с кодом авторизации, Resource Owner Password Grant — клиентская система имеет доступ к имени пользователя и паролю и обменивает их напрямую с сервером авторизации на токен доступа

Основной путь

URL по умолчанию, используется если серверу требуется перенаправление или обратная ссылка на клиента

/

Пути перенаправления

список URL, на которые может быть перенаправлен браузер после успешного входа или выхода

https://192.168.191.219/*

Доверенные источники CORS

Список доверенных источников в технологии CORS

https://192.168.191.219/*

При доступности приложений с нескольких URL (по IP, по домену), указать все допустимые варианты для Пути перенаправления и Доверенных источников CORS.

Введите значение в поле Пароль. Данный пароль будет использован в хранилище секретов Визиона.

Прочие параметры конфигурации можно оставить со значениями по умолчанию.

После ввода параметров нажмите кнопку Сохранить.

Добавление ролей для vision_core

Для создания новой роли необходимо перейти в параметры клиентской системы (пример: выбрать домен "vision", нажать "Клиентские системы" и выбрать "vision219"). Перейти на вкладку "Роли" и нажать кнопку Создать.

В появившемся меню заполнить поля в соответствии с ролевой моделью. Названия ролей должны совпадать с названиями, определёнными в Визион.

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

auth bvs 3

Редактирование области

Для корректной передачи username пользователя следует в области "roles" добавить новое "Отображение". Для этого следует на странице "Области" открыть области с названием "roles" и нажать кнопку Создать:

auth bvs 4 1

В появившемся меню следует заполнить следующие параметры:

auth bvs 4 2

Остальные значения можно оставить по умолчанию и нажать кнопку Сохранить.

Создание пользователя для Визион

Выберите домен "Vision" и перейдите в раздел Безопасность  Пользователи. Нажмите кнопку Создать. В появившемся окне заполните необходимые поля и также нажмите кнопку Создать:

auth bvs 4

На вкладке "Основное" для пользователя выберите чекбокс "E-mail подтвержден" и "Активность" (если не выбрали на стадии создания пользователя).

Перейдите на вкладку "Полномочия". Введите "Новый пароль", повторите его в поле "Подтверждение", снимите флаг Временный пароль и нажмите кнопку Сбросить пароль. В появившемся окне подтверждения действия нажмите кнопку Да.

Добавление роли пользователю для Визион

Для созданного пользователя перейдите на вкладку "Роли". В разделе "Роли уровня клиентской системы" выберите клиентскую систему "vision219", выберите одну или несколько ролей и нажмите кнопку Назначить выбранные роли:

auth bvs 6

Убедитесь, что для созданной клиенткой системы (пример Vision  Клиентские системы  vision219  области) в разделе "Области по умолчанию" в окне "Назначенные области" отображаются:

  • roles;

  • email.

Настройка конфигурации для vision_core

В конфигурационном файле /opt/skala-r/etc/vision/server/vision_core/config.yml внесите изменения в блок auth:

Пример заполнения блока auth
---
# ...
auth:
  enabled: true
  auth_type: keycloak
  auth_server: http://bvs-public.skala-r.tech/
  admin_server: http://bvs-public.skala-r.tech/
  realm: vision
  client_id: vision219
  client_secret: vault.auth.client_secret
  tls_insecure_skip_verify: true
  request_timeout: 5
# ...

Добавьте Client secret в хранилище секретов:

  1. Создайте копию файла хранилища секретов:

    cp /opt/skala-r/vision/.secrets_vault \
       /opt/skala-r/vision/.secrets_vault_bak
  2. Откройте хранилище секретов на изменение:

    ansible-vault edit /opt/skala-r/vision/.secrets_vault
    Для оперирования содержимым хранилища требуется ключ, выдаваемый разработчиком Визиона.
  3. Для ключа vault.auth.client_secret установите значение поля "Пароль" (раздел Основное  Пароль для Клиентской системы).

  4. Сохраните изменения.

  5. Примените изменения конфигурации:

    /opt/skala-r/vision/tools/update_server_config.sh
  6. Проверьте успешность запуска vision_core:

    systemctl status vision_core.service
  7. Убедитесь, что в логе нет ошибок после перезапуска:

    journalctl -fu vision_core -n 20

Настройка BVS и Визион для автоматической рассылки уведомлений

Необходимо в домене master в BVS создать технического пользователя, учётная запись которого будет использована для получения списка пользователей и ролей, и задать для него пароль.

Техническому пользователю необходимо создать и назначить роль, для которой выбрать следующие разрешения:

auth bvs 8 0

В конфигурационном файле Визион требуется задать параметры для сервиса vision_iamsyncer.service. Этот сервис запрашивает данные пользователей, необходимые для рассылки, у провайдера аутентификации и передаёт их в сервис vision_core.

Параметры:

  • iamsyncer_systemd_service — название сервиса, запрашивающего данные пользователей у провайдера аутентификации (изменять не требуется);

  • user_update_enabled — включение режима сбора данных пользователей (true) или выключение (false);

  • tech_auth_client_id — идентификатор клиента для сбора данных пользователей (изменять не требуется);

  • tech_auth_username — имя технического пользователя;

  • tech_auth_password — ключ в хранилище секретов, где хранится пароль технического пользователя;

  • fetch_interval — интервал времени (в секундах), через который запускается каждый последующий процесс сбора данных пользователей.

Пример заполнения
---
# ...
auth:
  enabled: true
  auth_server: 'http://bvs-public.skala-r.tech/'
  admin_server: 'http://bvs-public.skala-r.tech/'
  auth_type: 'keycloak'
  realm: 'vision'
  client_id: 'vision219'
  client_secret: vault.auth.client_secret
  tls_insecure_skip_verify: true
  request_timeout: 5
iamsyncer:
  systemd_service: vision_iamsyncer.service
  user_update_enabled: true
  tech_auth_client_id: 'admin-cli'
  tech_auth_username: 'vision219-api-user'
  tech_auth_password: vault.auth.tech_auth_password
  fetch_interval: 3600
# ...

Добавьте пароль технического пользователя в хранилище секретов:

  1. Откройте хранилище секретов:

    ansible-vault edit /opt/skala-r/vision/.secrets_vault
  2. В значении параметра vault.auth.tech_auth_password укажите пароль, ранее присвоенный техническому пользователю.

  3. Примените изменения:

    /opt/skala-r/vision/tools/update_server_configs.sh