Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Подключение внешнего 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 будет выполнять аутентификацию.

Порядок действий:
  1. Войдите в административную консоль внешнего Keycloak.

  2. Выберите требуемый Realm.

  3. Перейдите в раздел Clients.

  4. Создайте нового Client с типом OpenID Connect.

  5. Заполните параметры:

    1. Client ID. Укажите идентификатор клиента.

      Значение Client ID используется встроенным Keycloak zVirt при подключении и должно быть уникальным в рамках выбранного Realm.

    2. 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.

    3. Capability config. Активируйте параметр Client authentication.

3.1. Получение Client Secret

Чтобы получить Client Secret, после сохранения клиента:

  1. Перейдите во вкладку Credentials

  2. Скопируйте значение Client Secret. Оно понадобится при настройке Identity Provider на стороне встроенного Keycloak zVirt.

4. Настройка Identity Provider во встроенном Keycloak zVirt

Порядок действий:
  1. Войдите в административный портал встроенного Keycloak zVirt:

    1. Перейдите по адресу https://<ENGINE-FQDN>/ovirt-engine/auth/ и нажмите Administration Console.

    2. Убедитесь, что выбрана область (Realm) zvirt-internal.

  2. Перейдите в раздел Identity Providers.

  3. Выберите тип провайдера OpenID Connect v1.0.

  4. Заполните параметры:

    1. Alias. Укажите произвольное имя. Данное значение используется внутри Keycloak и отображается на странице входа zVirt как вариант аутентификации через внешний Identity Provider.

    2. Discovery endpoint. Активируйте параметр Use discovery endpoint и укажите URL конфигурации OIDC, полученный на внешнем Keycloak.

      Чтобы получить Discovery endpoint:

      1. Перейдите в раздел Realm settings.

      2. Откройте вкладку General.

      3. Нажмите на Endpoints.

      4. Выберите OpenID Endpoint Configuration.

      5. Скопируйте адрес открывшейся страницы.

      При корректной настройке в интерфейсе должен отобразиться индикатор успешного подключения.

    3. Client ID. Укажите идентификатор клиента, созданного на внешнем Keycloak.

    4. Client Secret. Укажите значение, полученное из раздела Credentials соответствующего Client на внешнем Keycloak.

  5. Нажмите Add для создания Identity Provider.

4.1. Дополнительные настройки Identity Provider

После создания провайдера необходимо настроить дополнительные параметры.

Настройка импорта пользователей
  1. Откройте созданного провайдера.

  2. Перейдите в раздел Advanced settings.

  3. Установите следующие значения:

    Параметр

    Значение

    First Login Flow

    first broker login

    Sync Mode

    Import

Поддержка Backchannel logout

Для корректной обработки выхода пользователя из системы при использовании SSO рекомендуется включить поддержку backchannel-logout.

  1. Откройте созданное подключение

  2. Перейдите в раздел Advanced

  3. Активируйте опцию Backchannel logout.

  4. Нажмите Save.

5. Проверка работоспособности

Для проверки корректности настройки:

  1. Перейдите на страницу приветствия zVirt по адресу https://<ENGINE-FQDN>/ovirt-engine/

  2. На странице входа выберите настроенный Identity Provider.

  3. Авторизуйтесь под пользователем, существующим во внешнем Keycloak.