Перейти к основному содержимому

Создать OIDC-федерацию для Keycloak

Последнее изменение:
  1. Настройте федерацию на стороне Keycloak.
  2. Создайте федерацию на стороне Selectel.
  3. Добавьте идентификатор федерации Selectel в федерацию Keycloak.

1. Настроить федерацию на стороне Keycloak

  1. В панели управления Keycloak войдите в аккаунт администратора (Administration Console).

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

  3. Нажмите Create client.

  4. На этапе General Settings:

    4.1. В поле Client type выберите OIDC.

    4.2. В поле Client ID введите идентификатор для клиента, который приложение будет использовать в качестве имени для сервера авторизации, например mobile-client-v1.

    4.3. Нажмите Next.

  5. На этапе Capability Config:

    5.1. Включите тумблер Client Authentication.

    5.2. В блоке Authentication flow отметьте чекбокс Standard flow.

    5.3. Нажмите Next.

  6. На этапе Login settings:

    6.1. В поле Home URL введите https://my.selectel.ru/federated-login.

    6.2. В поле Valid Redirect URIs введите https://api.selectel.ru/v1/auth/federations/oidc/*.

    6.3. Нажмите Save.

2. Создать федерацию на стороне Selectel

  1. В панели управления в верхнем меню нажмите Аккаунт.

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

  3. Нажмите Добавить федерацию и выберите OpenID Connect (OIDC).

  4. В блоке Настройки федерации:

    4.1. Введите имя федерации.

    4.2. Опционально: введите описание федерации.

    4.3. Измените время жизни сессии, в течение которой будет авторизован пользователь без необходимости повторной аутентификации, или оставьте значение по умолчанию (24 часа). Вы можете указать значение от 1 до 720 часов.

    Время жизни сессии также можно установить на стороне провайдера Keycloak в параметре SSO Session Max или Assertion Lifespan. Если время жизни сессии установлено и в настройках федерации, и в Keycloak, будет применяться наименьшее значение.
  5. В блоке Настройки IDP:

    5.1. В поле IdP Issuer введите идентификатор поставщика удостоверений — https://<idp_url>/realms/master. Укажите <idp_url> — ваш URL у поставщика удостоверений.

    5.2. В поле Client ID введите идентификатор, который вы указали в поле Client ID при настройке федерации на стороне поставщика удостоверений на этапе 1.

    5.3. В поле Client Secret введите секрет, можно посмотреть в панели управления Keycloak в разделе Client → Client secret.

    5.4. В поле Auth URL введите ссылку на страницу входа поставщика удостоверений, куда пользователи будут перенаправляться для аутентификации через SSO — https://<idp_url>/realms/master/protocol/openid-connect/auth. Укажите <idp_url> — ваш URL у поставщика удостоверений.

    5.5. В поле Token URL введите токен-эндпоинт — https://<idp_url>/realms/master/protocol/openid-connect/token. Укажите <idp_url> — ваш URL у поставщика удостоверений.

    5.6. В поле JWSK URI введите эндпоинт с сертификатами — https://<idp_url>/realms/master/protocol/openid-connect/certs. Укажите <idp_url> — ваш URL у поставщика удостоверений.

    5.7. Чтобы пользователи создавались автоматически при первом входе в панель управления по SSO, отметьте чекбокс Автосоздание пользователей. Пользователи будут создаваться с разрешениями, которые вы указали при настройке маппинга групп пользователей. Если не настроить маппинг, пользователи будут создаваться без разрешений и не будут иметь доступа в панель управления.

3. Добавить идентификатор федерации Selectel в федерацию Keycloak

  1. В панели управления Keycloak войдите в аккаунт администратора (Administration Console).
  2. Перейдите в раздел Clients.
  3. Откройте страницу клиента, который вы создали при настройке федерации на этапе 1.
  4. В поле Valid Redirect URIs введите https://api.selectel.ru/v1/auth/federations/oidc/<federation_id>/callback. Укажите <federation_id> — ID федерации на стороне Selectel, можно посмотреть в панели управления: в верхнем меню нажмите Аккаунт → раздел Федерации и посмотрите значение в строке федерации в поле ID.
  5. Нажмите Save.