Интеграция с Keycloak
Keycloak — система, которая обеспечивает централизованное управление пользователями, их ролями и правами доступа к данным. Она упрощает администрирование пользователей и их учетных записей, а также позволяет пользователям входить в несколько приложений по одной учетной записи (SSO).
В Idea Hub есть возможность настроить вход и регистрацию пользователей через Keycloak. Функциональность появилась в версии 25.3, для чего в расширения Idea Hub был добавлен модуль Keycloak.
Модуль позволяет аутентифицировать пользователей на сервере аутентификации Keycloak и синхронизировать поля пользователей с атрибутами OpenID, предоставленными Keycloak.
Ниже приведена инструкция по настройке интеграции между Idea Hub и Keycloak. Настройка выполняется пользователем с правами администратора.
Установка модулей
Установите в Idea Hub модули Keycloak и OpenID Connect.
Их можно установить командой:
drush in keycloak -y
Либо через веб-интерфейс Idea Hub:
- Войдите в Idea Hub под администратором.
- В административном меню выберите пункт Расширения.
- С помощью строки Фильтр найдите модули Keycloak, OpenID Connect и поставьте напротив них галочки.
- Нажмите Установить и дождитесь, когда появится уведомление об успешном статусе установки модулей.
Добавление Keycloak client в Idea Hub
-
В веб-интерфейсе Idea Hub перейдите на страницу добавления клиента Keycloak:
/admin/config/people/openid-connect/add/keycloak
. -
В поле Имя установите значение keycloak.
Важно! Текущая версия модуля учитывает конфигурацию конкретного клиента, поэтому доступно только название
keycloak
. -
В поле Client ID укажите уникальный идентификатор клиента Keycloak. В нашем примере это ideahub:
!
-
В поле Client secret укажите значение, которое можно найти на вкладке Credentials в клиенте Keycloak.
-
В поле Keycloak base URL укажите базовый адрес Keycloak. Пример:
https://keycloak-example.com:8443
. -
Укажите Keycloak realm, который можно найти в клиенте Keycloak вверху справа. В нашем примере это
test
. -
При необходимости включите опции:
- Update email address in user profile — позволяет автоматически обновлять адрес электронной почты в профиле пользователя в Idea Hub, если он был изменен в Keycloak.
- Enable user role mapping — позволяет при создании/входе пользователя в Idea Hub сопоставлять его роли с ролями в Keycloak.
В примере ниже приведена настройка, которая указывает, что для пользователей Keycloak с ролью role-ideahub нужно добавлять роль Бизнес-Пользователь в Idea Hub:
-
В завершение нажмите Сохранить.
Настройка OpenID
- В веб-интерфейсе Idea Hub перейдите на страницу настройки OpenID:
/admin/config/people/openid-connect/settings
. - Включите настройки Save user claims on every login, Override registration settings.
- Настройте поля User claims mapping. На текущий момент возможно настроить поля: Изображение, Часовой пояс, Почту, Имя, Телефон.
- В завершение нажмите Сохранить конфигурацию.
Настройка Keycloak
-
В веб-интерфейсе Idea Hub перейдите на страницу редактирования клиента Keycloak:
/admin/config/people/openid-connect/keycloak/edit
.На странице отобразится URL — скопируйте его значение:
-
Скопированный URL нужно добавить к валидным URL в клиенте Keycloak.
- Для этого зайдите в вашего клиента Keycloak:
-
И добавьте скопированное значение к валидным веб-адресам: