Настройка интеграции с KeyCloak
Настройка пользователей
|
Пользовательский интерфейс консоли администратора KeyCloak может отличаться от приведенного в данном руководстве. |
Для работы со "Спектром" при включённой авторизации необходимо настроить пользователей в KeyCloak.
-
Выбрать нужный Realm (рабочее пространство) в выпадающем списке над меню или создать новый (на скриншоте ниже выбрано значение "test-docs-realm"). После задания нужного Realm перейти в раздел "Клиенты" (Clients) и нажать кнопку Создать клиента (Create client):
-
В поле "Client ID" нужно ввести идентификатор клиента и нажать кнопку "Далее" (Next). Заданный ID клиента будет в дальнейшем использоваться в параметрах конфигурации “Спектра”.
-
На следующей странице:
-
включить переключатель "Аутентификация клиента" (Client authentication),
-
выставить флаг "Standart Flow",
-
выставить флаг "Direct access grants", и далее нажать кнопку "Сохранить" (Save).
Эти параметры позднее можно изменить в настройках клиента.
-
-
Перейти во вкладку "Настройки" (Settings), в поле "Валидация URI перенаправления" (Valid redirect URIs) добавить IP-адрес "Спектра" в формате:
PROTO://IP:XXXX/*где:
-
PROTO— http или https, в зависимости от настроек SSL "Спектра"; -
IP— IP адрес "Спектра"; -
XXXX— порт "Спектра" для доступа к веб-интерфейсу.Нажать кнопку Сохранить (Save).
-
-
Во вкладке "Учетные данные" (Credentials) есть поле "Секрет" (Client secret), значение которого будет в дальнейшем использоваться в параметрах конфигурации "Спектра". Значение можно скопировать в буфер обмена, нажав на соответствующую кнопку возле поля.
-
Перейти во вкладку "Роли" (Roles), нажать кнопку Создать роль (Create role).
-
На экране создания роли ввести имя роли и нажать кнопку Сохранить (Save). В примере, приведенном в данном руководстве, должны быть созданы две роли: "spectrum-ro" и "spectrum-rw".
-
Перейти в пункт меню "Пользователи" (Users) и на странице "Пользователи" (User list) нажать кнопку Создать пользователя (Create new user).
-
На экране создания пользователя:
-
ввести желаемое имя пользователя,
-
включить "E-mail подтвержден" (Email verified),
-
нажать кнопку Создать (Create).
В примере, приведенном в данном руководстве, будет создано два пользователя: "sprtest" и "sprtest-rw".
-
-
Перейти в пункт меню "Пользователи" и выбрать созданного пользователя, нажав на его имя.
-
Перейти во вкладку "Учетные данные" (Credentials), нажать кнопку Установить пароль (Set password).
-
В появившемся окне задать пароль, повторить пароль и выключить признак "Временный" (Temporary), если не требуется смена пароля пользователем при первом входе. Нажать кнопку Сохранить (Save).
-
Перейти во вкладку "Сопоставление ролей" (Role mapping), нажать кнопку Назначить роль (Assign role).
-
На экране назначения ролей:
(1) в выпадающем списке фильтра выбрать "Отсортировать по клиентам" (Filter by client),
(2) ввести полностью или частично имя необходимой роли / общей части имени ролей, созданной ранее,
(3) выбрать роли для назначения данному пользователю, выставив соответствующие флаги,
нажать кнопку Назначить (Assign).
В примере, приведенном в данном руководстве, пользователю
sprtestназначается рольspectrum-ro, а пользователюsprtest-rw—spectrum-roиspectrum-rw. -
После настройки включить настроенный Realm, если этого не было сделано ранее. Для этого перейти в пункт меню "Настройки реалма" (Realm settings) и включить переключатель "Включен" (Enabled) в правом верхнем углу окна.
Настройка конфигурации
В файле конфигурации spectrum-api заполнить секцию аутентификации согласно примеру:
[auth]
auth_server=https://192.168.1.2:8080 # Адрес хоста, на котором расположен identy provider
realm=spectrum # Название realm, который был выбран в процессе настройки
client_id=spectrum-users # ID клиента, который был создан в процессе настройки
cert=/opt/skala-r/spectrum/certs/keycloak-chain.pem # Путь к файлу сертификата. Опциональный параметр
enabled=1 # Указать 1 для включения аутентификации, 0 для отключения
Также необходимо сохранить значение поля Client secret, полученное после создания клиента, в файл зашифрованного хранилища .vault_store.
Для этого выполнить следующие команды:
source /opt/skala-r/spectrum/python-modules/bin/activate
ansible-vault edit /opt/skala-r/spectrum/.vault_store
Далее необходимо ввести пароль хранилища, после чего будет открыт текстовый редактор.
Добавить следующую строчку, где secret — значение поля Client secret из KeyCloak:
client_secret: secret
и сохранить файл.
Пример файла .vault_store с зашифрованными секретами:
spectrum_db_pass: xx
password_db: x
client_secret: xxx
variable: value
После этого нужно перезапустить сервис API, введя команду:
systemctl restart spectrum-api