Инструкция подготовлена на примере Basis Virtual Security версии 3.1.4 от 21.06.2024.
Термины и определения#
Basis Virtual Security, BVS#
Продукт , являющийся провайдером аутентификации и авторизации.
Authentication#
Идентификация и проверка пользователя.
Authorization#
Предоставление доступа пользователю.
Домен#
Пространство для управления пользователями, приложениями, ролями и группами. Пользователь принадлежит к конкретному домену. Домены изолированы друг от друга. Для пользователей Визиона достаточно одного домена.
Клиент#
Приложение, которое может обращаться к BVS для аутентификации пользователя.
Клиентская система#
Объект, который содержит совокупность параметров, необходимых для связи с определённым приложением.
Users#
Пользователи, которые могут войти в вашу систему. Им можно назначить членство в группе и определённые роли.
Roles#
Определяют тип или категорию пользователя.
Читатель, писатель — типичные роли.
Как правило, приложения назначают доступ и разрешения конкретным ролям, а не отдельным пользователям.
Приложения Визиона, требующие Клиентских систем:
- Vision Core
Добавление домена#
Если нужный домен уже есть в списке, перейдите к следующему пункту инструкции.
-
В разделе Домены нажмите кнопку Создать.
-
Заполните обязательные поля (например “vision” для имени домена) и нажмите кнопку Создать. Созданный домен должен появиться в списке.
Добавление клиентской системы для vision_core#
-
Выберите необходимый домен в выпадающем списке слева вверху.
-
Нажмите на раздел Безопасность и в открывшемся меню выберите Клиентские системы.
-
На открывшейся странице нажмите кнопку Создать.
-
Заполните форму Создание клиентской системы:
-
Идентификатор — идентификатор клиентской системы.
-
Наименование — название клиентской системы в Визион.
-
Описание — опциональное описание клиентской системы.
-
Тип доступа — Конфиденциальный.
-
Адрес — IP-адрес и порт для подключения к клиентской системе, например:
https://192.168.191.219/ -
Активность — включено.
-
-
Нажмите кнопку Создать.
Изменение параметров клиентской системы для 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”). Перейти на вкладку “Роли” и нажать кнопку Создать.
В появившемся меню заполнить поля в соответствии с ролевой моделью. Названия ролей должны совпадать с названиями, определёнными в Визион.
Нажмите кнопку Создать, после чего роль будет создана и появится в списке:
Редактирование области#
Для корректной передачи username пользователя следует в области “roles” добавить новое “Отображение”. Для этого следует на странице “Области” открыть области с названием “roles” и нажать кнопку Создать:
В появившемся меню следует заполнить следующие параметры:
Остальные значения можно оставить по умолчанию и нажать кнопку Сохранить.
Создание пользователя для Визион#
Выберите домен “Vision” и перейдите в раздел Безопасность → Пользователи. Нажмите кнопку Создать. В появившемся окне заполните необходимые поля и также нажмите кнопку Создать:
На вкладке “Основное” для пользователя выберите чекбокс “E-mail подтвержден” и “Активность” (если не выбрали на стадии создания пользователя).
Перейдите на вкладку “Полномочия”. Введите “Новый пароль”, повторите его в поле “Подтверждение”, снимите флаг Временный пароль и нажмите кнопку Сбросить пароль. В появившемся окне подтверждения действия нажмите кнопку Да.
Добавление роли пользователю для Визион#
Для созданного пользователя перейдите на вкладку “Роли”. В разделе “Роли уровня клиентской системы” выберите клиентскую систему “vision219”, выберите одну или несколько ролей и нажмите кнопку Назначить выбранные роли:
Убедитесь, что для созданной клиенткой системы (пример Vision → Клиентские системы → vision219 → области) в разделе “Области по умолчанию” в окне “Назначенные области” отображаются:
-
roles;
-
email.
Настройка конфигурации для vision_core#
В конфигурационном файле /opt/skala-r/etc/vision/server/vision_core/config.yml внесите изменения в блок 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. Создайте копию файла хранилища секретов:
```sh
cp /opt/skala-r/vision/.secrets_vault \
/opt/skala-r/vision/.secrets_vault_bak
```
1. Откройте хранилище секретов на изменение:
```sh
ansible-vault edit /opt/skala-r/vision/.secrets_vault
```
Для оперирования содержимым хранилища требуется ключ, выдаваемый разработчиком Визиона.
1. Для ключа `vault.auth.client_secret` установите значение поля "Пароль" (раздел **Основное → Пароль для Клиентской системы**).
1. Сохраните изменения.
1. Примените изменения конфигурации:
```sh
/opt/skala-r/vision/tools/update_server_config.sh
```
1. Проверьте успешность запуска `vision_core`:
```sh
systemctl status vision_core.service
```
1. Убедитесь, что в логе нет ошибок после перезапуска:
```sh
journalctl -fu vision_core -n 20
```
## Настройка BVS и Визион для автоматической рассылки уведомлений
Необходимо в домене master в BVS создать технического пользователя, учётная запись которого будет использована для получения списка пользователей и ролей, и задать для него пароль.
Техническому пользователю необходимо создать и назначить роль, для которой выбрать следующие разрешения:

В конфигурационном файле Визион требуется задать параметры для сервиса `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` — интервал времени (в секундах), через который запускается каждый последующий процесс сбора данных пользователей.
Пример заполнения:
```yaml
---
# ...
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
# ...
Добавьте пароль технического пользователя в хранилище секретов:
-
Откройте хранилище секретов:
ansible-vault edit /opt/skala-r/vision/.secrets_vault -
В значении параметра
vault.auth.tech_auth_passwordукажите пароль, ранее присвоенный техническому пользователю. -
Примените изменения:
/opt/skala-r/vision/tools/update_server_configs.sh