Создать OIDC-федерацию для Keycloak
- Настройте федерацию на стороне Keycloak.
- Создайте федерацию на стороне Selectel.
- Добавьте идентификатор федерации Selectel в федерацию Keycloak.
- Если при создании федерации на стороне Selectel вы включили автосоздание пользователей, настройте сопоставление групп пользователей.
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
-
В панели управления в верхнем меню нажмите IAM.
-
Перейдите в раздел Федерации.
-
Нажмите Добавить федерацию и выберите 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 в шаге 4.2.
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, можно посмотреть в панели управления: в верхнем меню нажмите IAM → Федерации → строка федерации → поле ID. - Нажмите Save.
4. Настроить сопоставление групп пользователей
Настраивать сопоставление групп необходимо, если при создании федерации на стороне Selectel на этапе 2 вы включили автосоздание пользователей. Используйте подраздел Настроить сопоставление групп инструкции Сопоставление групп пользователей.