Настройка аутентификации через BVS

Инструкция подготовлена на примере 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->Клиентcкие системы->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/
  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.