Создать OIDC-федерацию для Keycloak
- Настройте федерацию на стороне Keycloak.
- Создайте федерацию на стороне Selectel.
- Добавьте идентификатор федерации Selectel в федерацию Keycloak.
1. Настроить федерацию на стороне Keycloak
-
В панели управления Keycloak войдите в аккаунт администратора (Administration Console).
-
Перейдите в раздел Clients.
-
Нажмите Create client.
-
На этапе General Settings:
4.1. В поле Client type выберите OIDC.
4.2. В поле Client ID введите идентификатор для клиента, который приложение будет использовать в качестве имени для сервера авторизации, например
mobile-client-v1.4.3. Нажмите Next.
-
На этапе Capability Config:
5.1. Включите тумблер Client Authentication.
5.2. В блоке Authentication flow отметьте чекбокс Standard flow.
5.3. Нажмите Next.
-
На этапе 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
-
В панели управления в верхнем меню нажмите Аккаунт.
-
Перейдите в раздел Федерации.
-
Нажмите Добавить федерацию и выберите OpenID Connect (OIDC).
-
В блоке Настройки федерации:
4.1. Введите имя федерации.
4.2. Опционально: введите описание федерации.
4.3. Измените время жизни сессии, в течение которой будет авторизован пользователь без необходимости повторной аутентификации, или оставьте значение по умолчанию (24 часа). Вы можете указать значение от 1 до 720 часов.
Время жизни сессии также можно установить на стороне провайдера Keycloak в параметре SSO Session Max или Assertion Lifespan. Если время жизни сессии установлено и в настройках федерации, и в Keycloak, будет применяться наименьшее значение. -
В блоке Настройки 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
- В панели управления Keycloak войдите в аккаунт администратора (Administration Console).
- Перейдите в раздел Clients.
- Откройте страницу клиента, который вы создали при настройке федерации на этапе 1.
- В поле Valid Redirect URIs введите
https://api.selectel.ru/v1/auth/federations/oidc/<federation_id>/callback. Укажите<federation_id>— ID федерации на стороне Selectel, можно посмотреть в панели управления: в верхнем меню нажмите Аккаунт → раздел Федерации и посмотрите значение в строке федерации в поле ID. - Нажмите Save.