Подключение внешнего Keycloak для единого входа (SSO)
1. Пояснение
При необходимости можно настроить интеграцию Keycloak zVirt с внешним Keycloak. После выполнения описанных действий пользователи, созданные во внешнем Keycloak, смогут проходить аутентификацию в портале администрирования zVirt через Single Sign-On (SSO).
В интеграции участвуют два Keycloak:
-
внешний Keycloak — внешний Identity Provider, в котором уже созданы учетные записи пользователей;
-
встроенный Keycloak zVirt — Keycloak, используемый Менеджером управления для аутентификации и авторизации.
Интеграция реализуется следующим образом:
-
на стороне внешнего Keycloak создается OIDC-клиент;
-
на стороне встроенного Keycloak zVirt настраивается Identity Provider, указывающий на внешний Keycloak.
|
Рекомендуется сохранять все значения, полученные в процессе настройки. |
2. Предварительные требования
-
Внешний Keycloak и встроенный Keycloak zVirt разрешают друг друга по доменному имени (FQDN).
-
Между Менеджером управления и внешним Keycloak обеспечена сетевая доступность (обычно порт 443).
-
Имеются административные права в соответствующем Realm на обоих Keycloak.
3. Создание клиента на внешнем Keycloak
На стороне внешнего Keycloak необходимо создать OIDC-клиент, через который встроенный Keycloak zVirt будет выполнять аутентификацию.
-
Войдите в административную консоль внешнего Keycloak.
-
Выберите требуемый Realm.
-
Перейдите в раздел Clients.
-
Создайте нового Client с типом OpenID Connect.
-
Заполните параметры:
-
Client ID. Укажите идентификатор клиента.
Значение Client ID используется встроенным Keycloak zVirt при подключении и должно быть уникальным в рамках выбранного Realm.
-
Redirect URI. Укажите в полях Valid redirect URIs и Valid post logout redirect URIs URI перенаправления по следующему шаблону https://<ENGINE-FQDN>/ovirt-engine/auth/realms/zvirt-internal/broker/<ALIAS>/endpoint
Где:
-
<ALIAS>— произвольное имя, которое вы укажете позже при настройке Identity Provider.
-
-
Capability config. Активируйте параметр Client authentication.
-
4. Настройка Identity Provider во встроенном Keycloak zVirt
-
Войдите в административный портал встроенного Keycloak zVirt:
-
Перейдите по адресу https://<ENGINE-FQDN>/ovirt-engine/auth/ и нажмите Administration Console.
-
Убедитесь, что выбрана область (Realm) zvirt-internal.
-
-
Перейдите в раздел Identity Providers.
-
Выберите тип провайдера OpenID Connect v1.0.
-
Заполните параметры:
-
Alias. Укажите произвольное имя. Данное значение используется внутри Keycloak и отображается на странице входа zVirt как вариант аутентификации через внешний Identity Provider.
-
Discovery endpoint. Активируйте параметр Use discovery endpoint и укажите URL конфигурации OIDC, полученный на внешнем Keycloak.
Чтобы получить Discovery endpoint:
-
Перейдите в раздел Realm settings.
-
Откройте вкладку General.
-
Нажмите на Endpoints.
-
Выберите OpenID Endpoint Configuration.
-
Скопируйте адрес открывшейся страницы.
При корректной настройке в интерфейсе должен отобразиться индикатор успешного подключения.
-
-
Client ID. Укажите идентификатор клиента, созданного на внешнем Keycloak.
-
Client Secret. Укажите значение, полученное из раздела Credentials соответствующего Client на внешнем Keycloak.
-
-
Нажмите Add для создания Identity Provider.
4.1. Дополнительные настройки Identity Provider
После создания провайдера необходимо настроить дополнительные параметры.
- Настройка импорта пользователей
-
-
Откройте созданного провайдера.
-
Перейдите в раздел Advanced settings.
-
Установите следующие значения:
Параметр
Значение
First Login Flow
first broker loginSync Mode
Import
-
- Поддержка Backchannel logout
|
Для корректной обработки выхода пользователя из системы при использовании SSO рекомендуется включить поддержку backchannel-logout. |
-
Откройте созданное подключение
-
Перейдите в раздел Advanced
-
Активируйте опцию Backchannel logout.
-
Нажмите Save.