Инструкция подготовлена на примере BVS Версия: 3.1.4 (от 21.06.2024)
Терминология:
- BVS — Basis Virtual Security, продукт являющийся провайдером аутентификации и авторизации.
- Authentication — идентификация и проверка пользователя.
- Authorization — предоставление доступа пользователю.
- Домен — пространство для управления пользователями, приложениями, ролями и группами. Пользователь принадлежит к конкретному Домену. Домены изолированы друг от друга. Для пользователей Визиона достаточно одного домена.
- Клиентские системы — клиенты (приложения), которые могут обращаться к BVS для аутентификации пользователя. Клиентская система — объект, который содержит совокупность параметров, необходимых для связи с определённым приложением.
- Users — пользователи, которые могут войти в вашу систему. Им можно назначить членство в группе и/или определенные роли.
- Roles — определяют тип/категорию пользователя. Читатель, писатель — типичные роли. Обычно, приложения назначают доступ и разрешения конкретным ролям, а не отдельным пользователям.
Приложения Визиона, требующие Клиентских систем:
- Vision Core
1. Добавление домена#
В случае, если нужный домен уже есть в списке, перейдите к следующему пункту инструкции.
В разделе “Домены” нажмите кнопку “Создать”, заполните обязательные поля (например “vision” для имени домена) в появившемся окне и нажмите “Создать”. Созданный домен должен появиться в списке:
2. Добавление клиентской системы для vision_core#
Выберите необходимый домен в выпадающем списке слева вверху (vision), нажмите на раздел “Безопасность” (раскроется контекстное меню) и выберите раздел “Клиентские системы”.
В открывшейся странице нажмите кнопку “Создать” и в появившемся окне заполните поля:
Поле | Описание | Пример заполнения |
---|---|---|
Идентификатор: | Имя клиентской системы | vision219 |
Наименование: | Произвольное имя | vision219 |
Тип доступа: | Какой тип доступа будет использован | Конфиденциальный (потребуется секретный ключ для инициализации протокола входа) |
Адрес: | IP-адрес и порт для клиентской системы | https://192.168.191.219/ |
Активность | Отключённые системы не могут инициировать вход и получать токены доступа | [x] (должен быть выбран) |
После ввода параметров нажмите “Создать”.
2.1 Изменение параметров клиентской системы для 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.
Введите значение в поле “Пароль”. Данный пароль будет использован в хранилище секретов Визиона.
Прочие параметры конфигурации можно оставить со значениями по умолчанию.
После ввода параметров нажмите “Сохранить”.
3. Добавление ролей для vision_core#
Для создания новой роли необходимо перейти в параметры клиентской системы (пример: выбрать домен “vision”, нажать “Клиентские системы” и выбрать “vision219”). Перейти на вкладку “Роли” и нажать кнопку “Создать”.
В появившемся меню, заполнить поля в соответствии с ролевой моделью. Названия ролей должны совпадать с названиями, определёнными в Визион.
Нажмите на кнопку “Создать”, после чего роль будет создана и появится в списке:
4. Редактирование области#
Для корректной передачи username
пользователя следует в области “roles” добавить новое “Отображение”. Для этого следует на странице “Области” открыть области с названием “roles” и нажать кнопку “Создать”:
В появившемся меню следует заполнить следующие параметры:
Остальные значения можно оставить по умолчанию и нажать кнопку “Сохранить”.
5. Создание пользователя для Визион#
Выберите домен “Vision” и перейдите в раздел Безопасность -> Пользователи. Нажмите “Создать”. В появившемся окне заполните необходимые поля и также нажмите “Создать”:
На вкладке “Основное” для пользователя выберите чекбокс “E-mail подтвержден” и “Активность” (если не выбрали на стадии создания пользователя).
Перейдите на вкладку “Полномочия”. Введите “Новый пароль”, повторите его в поле “Подтверждение”, уберите чекбокс “Временный пароль” и нажмите “Сбросить пароль”. В появившемся окне подтверждения действия нажмите “Да”.
6. Добавление роли пользователю для Визион#
Для созданного пользователя перейдите на вкладку “Роли”. В разделе “Роли уровня клиентской системы” выберите клиентскую систему “vision219”, выберите одну или несколько ролей и нажмите “Назначить выбранные роли”:
Убедитесь, что для созданной клиенткой системы (пример Vision -> Клиентские системы -> vision219 -> области) в разделе “Области по умолчанию” в окне “Назначенные области” отображаются:
- roles;
- email.
7. Настройка конфигурации для 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 клиента.
Сделайте копию файла хранилища секретов:
cp /opt/skala-r/vision/.secrets_vault /opt/skala-r/vision/.secrets_vault_bak
Откройте хранилище секретов командой:
ansible-vault edit /opt/skala-r/vision/.secrets_vault
Для оперирования содержимым хранилища требуется ключ, выдаваемый разработчиком Визиона.
Для ключа vault.auth.client_secret
установите значение поля “Пароль” (раздел Основное -> Пароль для Клиентской системы).
Сохраните файл и перезапустите сервис vision_core.service
командой:
systemctl restart vision_core.service
Проверьте успешный запуск vision_core
командой:
systemctl status vision_core.service
Убедитесь, что в логе нет ошибок после перезапуска:
journalctl -fu vision_core -n 20
8. Настройка 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
— ключ в secret vault, где хранится пароль технического пользователя;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
Пароль технического пользователя необходимо добавить в secrets_vault
. Для этого необходимо:
-
Открыть хранилище секретов командой:
ansible-vault edit /opt/skala-r/vision/.secrets_vault
-
Для ключа
vault.auth.tech_auth_password
установить значение пароля, заданного в разделе “Полномочия” технического пользователя.
После всех изменений необходимо перезапустить сервис Визион:
systemctl restart vision_core
В случае, если в провайдере аутентификации произошли изменения, и администратор не хочет ждать следующего запуска процесса сбора данных, можно перезапустить сервис vision_iamsyncer
командой:
systemctl restart vision_iamsyncer