Настройка KeyCloak
Подсистема управления доступом и её пользовательский интерфейс в Salt.Box реализованы на основе программного продукта с открытым исходным кодом Keycloak, распространяемого по лицензии Apache License 2.0
.
Вход в KeyCloak
Войдите в веб-интерфейс подсистемы управления доступом по адресу:
https://<адрес_сервера_Salt.Box>/auth/keycloak/
Если развёртывание Salt.Box выполнено в контейнеризаторе приложений Docker, используйте пароль учётной записи admin
, сохранённый в файле /secrets/keycloak-admin-password
в папке проекта Рис. 1.
![]() |
---|
Создание нового реалма
Учётная запись admin
принадлежит реалму Keycloak по умолчанию с идентификатором Master.
По соображениям безопасности не рекомендуется создавать пользователей Salt.Box в данном реалме.
Откройте список реалмов Рис. 2 [1] и нажмите кнопку Create realm
для создания нового реалма.
Задайте имя реалма, например, salt.box, как на рисунке Рис. 3, и нажмите кнопку Create
.
Новый реалм будет создан.
![]() |
---|
![]() |
---|
Создание клиента
-
Выберите пункт меню Clients главного меню KeyCloak Рис. 4. Клиентом Keycloak является веб-приложение
salt_box_core
, входящее в состав Salt.Box. Зарегистрируйте это приложение в KeyCloak, для чего откройте диалог создания клиента, нажав кнопкуCreate Client
Рис. 4 [1].
Рисунок 4. Страница клиентов -
На вкладке General settings диалога создания клиента Рис. 5 введите параметры:
Поле Значение Комментарий Client type OpenID Connect
обязательное поле Client ID salt_box_core
обязательное поле Name client_salt_box_core
любое наименование затем нажмите
Next
.
Рисунок 5. Окно создания клиента: вкладка общих настроек -
На вкладке Capability config диалога создания клиента Рис. 6 установите флажки:
Поле Значение Standard flow ✓ Direct access grants ✓ затем нажмите
Next
.
Рисунок 6. Окно создания клиента: вкладка настроек функциональных возможностей -
Оставьте без изменений параметры на вкладке Login Settings Рис. 7, нажмите
Save
.
Будет создан новый клиент KeyCloak.
Рисунок 7. Окно создания клиента: вкладка настроек параметров входа
Создание роли клиента
Salt.Box предоставляет полномочия на управление коллекциями пользователям с ролью collections_admin
.
Создайте эту роль для клиента salt_box_core
реалма salt.box.
Выполните действия, указанные ниже.
-
На странице Clients откройте созданный клиент salt_box_core и перейдите на вкладку Roles.
НажмитеCreate role
Рис. 8.
Рисунок 8. -
Введите параметры роли в диалоговом окне создания роли Рис. 9:
Поле Значение Комментарий Role name collections_admin
обязательное поле Description произвольная строка затем нажмите
Save
.
Рисунок 9. Диалоговое окно создания роли
Созданную роль далее можно будет назначить любому пользователю Salt.Box: см. Назначение роли пользователю.
Также Вы можете узнать у разработчика программного продукта наименования и назначение других встроенных ролей Salt.Box и правила нотации для доступа к ресурсам Salt.Box.
Создание пользователя
-
Введите данные и создайте нового пользователя:
-
Выберите пункт меню Users главного меню KeyCloak Рис. 10.
НажмитеAdd user
над таблицей пользователей Рис. 10 [1].
Рисунок 10. Страница управления учётными записями пользователей -
В открывшемся окне введите данные пользователя Рис. 11:
Поле Значение Комментарий Username user
обязательное поле Email First name Last name
Рисунок 11. Ввод данных пользователя -
В случае необходимости укажите требуемые дополнительные действия с учётной записью пользователя, например, обязательную смену пароля при первом входе пользователя (Update Password) Рис. 12.
В окне создания пользователя появится плиткаUpdate Password
Рис. 11 [1].
Рисунок 12. Добавление требуемых действий пользователя -
Нажмите
Create
Рис. 11.
Будет создан новый пользователь, отобразится окно User details Рис. 13.
-
-
Задайте пароль для созданного пользователя.
Назначение роли пользователю
Теперь назначьте ранее созданную роль collections_admin
(см. Создание роли клиента) учетной записи user
, чтобы предоставить ей разрешения на управление коллекциями.
-
На странице Users откройте созданный аккаунт
user
и перейдите на вкладку Role mapping.
НажмитеAssign role
Рис. 15.
Рисунок 15. Вкладка сопоставления ролей -
Введите название роли
collections_admin
в строку поиска и нажмите кнопку Рис. 16 [1].
Рисунок 16. Назначение роли пользователю -
Поставьте флажок на записи с ролью
collections_admin
, ассоциированной с клиентомsalt_box_core
Рис. 16 [2]. -
Нажмите :guilabel:
Assign
Рис. 16 [3].
Рольcollections_admin
будет назначена пользователюuser
.
Пользователюuser
будут доступны объекты корневой коллекции.
Дополнительная информация
Более подробную информацию о настройке KeyCloak можно найти здесь:
Документация KeyCloak