Федерация удостоверений
Содержание
Что такое федерация удостоверенийФедерация пользователей (LDAP / Active Directory)Как это работаетОсновные параметры конфигурацииLDAP MappersIdentity Providers (брокеринг внешних IdP)Поддерживаемые типы внешних IdPПоток брокерингаПоток первого входаВыбор между User Federation и IdP BrokeringЧто такое федерация удостоверений
Федерация удостоверений позволяет Keycloak делегировать аутентификацию пользователей внешнему источнику удостоверений вместо того, чтобы управлять учётными данными внутри системы. Keycloak выступает в роли брокера: он аутентифицирует пользователей во внешней системе, а затем выпускает собственные токены для клиентских приложений.
Это позволяет организациям:
- Повторно использовать существующие корпоративные хранилища удостоверений (LDAP, Active Directory) без миграции пользователей в Keycloak.
- Разрешить пользователям входить с помощью социальных аккаунтов (Google, GitHub, Microsoft) или корпоративных систем SSO.
- Объединять несколько доменов удостоверений под одним Keycloak Realm.
Федерация пользователей (LDAP / Active Directory)
Федерация пользователей подключает Keycloak к существующему каталогу пользователей, например LDAP или Microsoft Active Directory. Пользователи хранятся во внешнем каталоге; Keycloak читает и (при необходимости) записывает данные пользователей из этого каталога.
Как это работает
- Keycloak запрашивает сервер LDAP/AD для аутентификации пользователя при входе.
- Keycloak локально кэширует атрибуты пользователей для повышения производительности.
- Данные пользователя (имя пользователя, электронная почта, членство в группах) синхронизируются из каталога в Keycloak по запросу или посредством периодической полной синхронизации.
Основные параметры конфигурации
LDAP Mappers
LDAP Mappers определяют, как атрибуты LDAP сопоставляются с атрибутами пользователей и ролями Keycloak. К распространённым mappers относятся:
- User Attribute Mapper: сопоставляет атрибут LDAP (например,
mail) с атрибутом пользователя Keycloak (например,email). - Group Mapper: сопоставляет членство в группах LDAP с группами или ролями Keycloak.
- Role Mapper: сопоставляет группы LDAP с Realm или ролями клиента Keycloak.
Identity Providers (брокеринг внешних IdP)
Брокеринг Identity Provider (IdP) подключает Keycloak к внешним Identity Provider на базе OIDC или SAML. Keycloak выступает как Service Provider (SP) по отношению к внешнему IdP и как Identity Provider для собственных клиентов.
Поддерживаемые типы внешних IdP
Поток брокеринга
- Пользователь нажимает «Войти через Google» (или через другой внешний IdP) на странице входа Keycloak.
- Keycloak перенаправляет пользователя во внешний IdP для аутентификации.
- Внешний IdP аутентифицирует пользователя и возвращает его обратно в Keycloak с assertion (OIDC ID token или SAML assertion).
- Keycloak проверяет assertion, создаёт или связывает локальную учётную запись пользователя и выпускает собственные токены для клиентского приложения.
Поток первого входа
Когда пользователь аутентифицируется через внешний IdP впервые, Keycloak запускает First Login Flow, чтобы определить, как обработать нового пользователя:
- Создать нового локального пользователя: автоматически создаётся новый пользователь Keycloak и связывается с внешней идентичностью.
- Связать с существующим пользователем: если локальный пользователь с таким же адресом электронной почты уже существует, Keycloak может предложить пользователю подтвердить и связать учётные записи.
- Требовать проверки профиля: пользователю предлагается проверить или заполнить свой профиль перед продолжением.
First Login Flow полностью настраивается для каждого identity provider.