Настройка 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 и выполните следующие шаги:

  1. В левой панели нажмите Add Realm.

    create realm 1
  2. Введите имя области, например openbpm.

  3. Нажмите Create.

    create realm 2

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

Клиент представляет приложение OpenBPM Control, которое будет использовать Keycloak для аутентификации.

  1. Перейдите в раздел Clients и нажмите Create.

  2. Укажите параметры:

    Параметр Значение

    Client ID

    openbpm-control

    Client Protocol

    openid-connect

    create client 1
  3. В разделе Capability config:

    Параметр Значение

    Client authentication

    ON

    create client 2
  4. В разделе Login Settings установите:

    Параметр Значение

    Valid Redirect URIs

    * (только для разработки)

    Valid post logout redirect URIs

    * (только для разработки)

    Web Origins

    * (только для разработки)

    create client 3

    После сохранения клиента перейдите на вкладку Credentials и скопируйте Client Secret. Этот секрет будет использоваться в настройках OpenBPM Control.

    client credentials

Создание ролей

Роли в Keycloak должны совпадать с кодами ролей, используемыми в Jmix/OpenBPM Control.

  1. Перейдите в раздел Realm roles → Add Role.

  2. Укажите имя роли, например system-full-access.

  3. Сохраните изменения.

    create role

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

  1. Перейдите в раздел Users → Add User.

  2. Укажите имя пользователя, например johndoe.

  3. Сохраните.

    create user

    После сохранения:

    • На вкладке Credentials задайте пароль пользователю.

    • На вкладке Role Mappings назначьте роль system-full-access.

      create user credentials
      assign role

Настройка маппера ролей

Чтобы роли передавались в ID Token, создайте маппер:

  1. Перейдите в раздел Client scopes → roles → Mappers → realm roles.

  2. Нажмите Create и заполните поля:

    Поле Значение

    Mapper Type

    User Realm Role

    Token Claim Name

    realm roles

    Claim JSON Type

    String

    Add to ID token

    ON

    Add to access token

    ON

    Add to userinfo

    ON

    create mapper 1
    create mapper 2

Проверка аутентификации

После успешной настройки Keycloak и OpenBPM Control, стандартная форма логина будем заменена на форму логина от Keycloak:

keycloak login