Настройка Keycloak
Ниже приведен пример настройки Keycloak в роли поставщика удостоверений для единого входа (SSO) в OpenBPM Control. Сначала настройте сам Control по странице Single Sign-On (SSO), затем выполните шаги ниже.
Настройка локального экземпляра Keycloak
Один из самых популярных поставщиков OpenID - Keycloak. Для ознакомления с дополнением Jmix OIDC вы можете запустить Keycloak локально с помощью Docker.
Запуск Keycloak с использованием Docker
Используйте следующую команду для запуска экземпляра Keycloak с помощью Docker на порту 8180:
docker run -p 8180:8080 \
-e KEYCLOAK_ADMIN=admin \
-e KEYCLOAK_ADMIN_PASSWORD=admin \
--name keycloak \
quay.io/keycloak/keycloak:22.0 start-dev
См. документацию Keycloak для получения дополнительной информации.
URL Keycloak: http://localhost:8180
Административные учетные данные:
Имя пользователя: admin
Пароль: admin
Вы можете прочитать о настройке экземпляра Keycloak в Руководстве администратора сервера.
Настройка Keycloak для OpenBPM Control
Создание Realm
Войдите в консоль администратора Keycloak и выполните следующие шаги:
-
В левой панели нажмите Add Realm.
-
Введите имя области, например
openbpm. -
Нажмите Create.
Создание клиента
Клиент представляет приложение OpenBPM Control, которое будет использовать Keycloak для аутентификации.
-
Перейдите в раздел Clients и нажмите Create.
-
Укажите параметры:
Параметр Значение Client ID
openbpm-controlClient Protocol
openid-connect
-
В разделе Capability config:
Параметр Значение Client authentication
ON
-
В разделе Login Settings установите:
Параметр Значение Valid Redirect URIs
*(только для разработки)Valid post logout redirect URIs
*(только для разработки)Web Origins
*(только для разработки)
После сохранения клиента перейдите на вкладку Credentials и скопируйте Client Secret. Этот секрет будет использоваться в настройках OpenBPM Control.
Создание ролей
Роли в Keycloak должны совпадать с кодами ролей, используемыми в Jmix/OpenBPM Control.
-
Перейдите в раздел Realm roles → Add Role.
-
Укажите имя роли, например
system-full-access. -
Сохраните изменения.
Создание пользователя
-
Перейдите в раздел Users → Add User.
-
Укажите имя пользователя, например
johndoe. -
Сохраните.
После сохранения:
-
На вкладке Credentials задайте пароль пользователю.
-
На вкладке Role Mappings назначьте роль
system-full-access.
-
Настройка маппера ролей
Чтобы роли передавались в ID Token, создайте маппер:
-
Перейдите в раздел Client scopes →
roles→ Mappers →realm roles. -
Нажмите Create и заполните поля:
Поле Значение Mapper Type
User Realm RoleToken Claim Name
realm rolesClaim JSON Type
StringAdd to ID token
ONAdd to access token
ONAdd to userinfo
ON