Перейти к основному содержимому

Настройка KeyCloak

Подсистема управления доступом и её пользовательский интерфейс в Salt.Box реализованы на основе программного продукта с открытым исходным кодом Keycloak, распространяемого по лицензии Apache License 2.0.

Вход в KeyCloak

Войдите в веб-интерфейс подсистемы управления доступом по адресу:
https://<адрес_сервера_Salt.Box>/auth/keycloak/
Если развёртывание Salt.Box выполнено в контейнеризаторе приложений Docker, используйте пароль учётной записи admin, сохранённый в файле /secrets/keycloak-admin-password в папке проекта Рис. 1.

Окно входа в KeyCloak
Рисунок 1. Окно входа в KeyCloak

Создание нового реалма

Учётная запись admin принадлежит реалму Keycloak по умолчанию с идентификатором Master.
По соображениям безопасности не рекомендуется создавать пользователей Salt.Box в данном реалме.
Откройте список реалмов Рис. 2 [1] и нажмите кнопку Create realm для создания нового реалма.
Задайте имя реалма, например, salt.box, как на рисунке Рис. 3, и нажмите кнопку Create.
Новый реалм будет создан.

Страница реалма по умолчанию (Master)
Рисунок 2. Страница реалма по умолчанию (Master)


Диалоговое окно создания нового реалма
Рисунок 3. Диалоговое окно создания нового реалма

Создание клиента

  1. Выберите пункт меню Clients главного меню KeyCloak Рис. 4. Клиентом Keycloak является веб-приложение salt_box_core, входящее в состав Salt.Box. Зарегистрируйте это приложение в KeyCloak, для чего откройте диалог создания клиента, нажав кнопку Create Client Рис. 4 [1].

    Страница клиентов
    Рисунок 4. Страница клиентов
  2. На вкладке General settings диалога создания клиента Рис. 5 введите параметры:

    ПолеЗначениеКомментарий
    Client typeOpenID Connectобязательное поле
    Client IDsalt_box_coreобязательное поле
    Nameclient_salt_box_coreлюбое наименование

    затем нажмите Next.

    Окно создания клиента: вкладка общих настроек
    Рисунок 5. Окно создания клиента: вкладка общих настроек
  3. На вкладке Capability config диалога создания клиента Рис. 6 установите флажки:

    ПолеЗначение
    Standard flow
    Direct access grants

    затем нажмите Next.

    Окно создания клиента: вкладка настроек функциональных возможностей
    Рисунок 6. Окно создания клиента: вкладка настроек функциональных возможностей
  4. Оставьте без изменений параметры на вкладке Login Settings Рис. 7, нажмите Save.
    Будет создан новый клиент KeyCloak.

    Окно создания клиента: вкладка настроек параметров входа
    Рисунок 7. Окно создания клиента: вкладка настроек параметров входа

Создание роли клиента

Salt.Box предоставляет полномочия на управление коллекциями пользователям с ролью collections_admin.
Создайте эту роль для клиента salt_box_core реалма salt.box.
Выполните действия, указанные ниже.

  1. На странице Clients откройте созданный клиент salt_box_core и перейдите на вкладку Roles.
    Нажмите Create role Рис. 8.

    Рисунок 8.
  2. Введите параметры роли в диалоговом окне создания роли Рис. 9:

    ПолеЗначениеКомментарий
    Role namecollections_adminобязательное поле
    Descriptionпроизвольная строка

    затем нажмите Save.

    Диалоговое окно создания роли
    Рисунок 9. Диалоговое окно создания роли

Созданную роль далее можно будет назначить любому пользователю Salt.Box: см. Назначение роли пользователю.
Также Вы можете узнать у разработчика программного продукта наименования и назначение других встроенных ролей Salt.Box и правила нотации для доступа к ресурсам Salt.Box.

Создание пользователя

  1. Введите данные и создайте нового пользователя:

    1. Выберите пункт меню Users главного меню KeyCloak Рис. 10.
      Нажмите Add user над таблицей пользователей Рис. 10 [1].

      Страница управления учётными записями пользователей
      Рисунок 10. Страница управления учётными записями пользователей
    2. В открывшемся окне введите данные пользователя Рис. 11:

      ПолеЗначениеКомментарий
      Usernameuserобязательное поле
      Email
      First name
      Last name
      Ввод данных пользователя
      Рисунок 11. Ввод данных пользователя
    3. В случае необходимости укажите требуемые дополнительные действия с учётной записью пользователя, например, обязательную смену пароля при первом входе пользователя (Update Password) Рис. 12.
      В окне создания пользователя появится плитка Update Password Рис. 11 [1].

      Добавление требуемых действий пользователя
      Рисунок 12. Добавление требуемых действий пользователя
    4. Нажмите Create Рис. 11.
      Будет создан новый пользователь, отобразится окно User details Рис. 13.

  2. Задайте пароль для созданного пользователя.

    1. На странице Users откройте созданный аккаунт user и перейдите на вкладку Credentials.
      Нажмите Set password Рис. 13.

      Вкладка управления учётными данными пользователя
      Рисунок 13. Вкладка управления учётными данными пользователя
    2. Задайте пароль пользователя в диалоговом окне Рис. 14.

      Установка пароля пользователя
      Рисунок 14. Установка пароля пользователя

Назначение роли пользователю

Теперь назначьте ранее созданную роль collections_admin (см. Создание роли клиента) учетной записи user, чтобы предоставить ей разрешения на управление коллекциями.

  1. На странице Users откройте созданный аккаунт user и перейдите на вкладку Role mapping.
    Нажмите Assign role Рис. 15.

    Вкладка сопоставления ролей
    Рисунок 15. Вкладка сопоставления ролей
  2. Введите название роли collections_admin в строку поиска и нажмите кнопку Рис. 16 [1].

    Назначение роли пользователю
    Рисунок 16. Назначение роли пользователю
  3. Поставьте флажок на записи с ролью collections_admin, ассоциированной с клиентом salt_box_core Рис. 16 [2].

  4. Нажмите :guilabel:Assign Рис. 16 [3].
    Роль collections_admin будет назначена пользователю user.
    Пользователю user будут доступны объекты корневой коллекции.

Дополнительная информация

Более подробную информацию о настройке KeyCloak можно найти здесь:
Документация KeyCloak