• Русский
  • Федерация удостоверений

    Что такое федерация удостоверений

    Федерация удостоверений позволяет Keycloak делегировать аутентификацию пользователей внешнему источнику удостоверений вместо того, чтобы управлять учётными данными внутри системы. Keycloak выступает в роли брокера: он аутентифицирует пользователей во внешней системе, а затем выпускает собственные токены для клиентских приложений.

    Это позволяет организациям:

    • Повторно использовать существующие корпоративные хранилища удостоверений (LDAP, Active Directory) без миграции пользователей в Keycloak.
    • Разрешить пользователям входить с помощью социальных аккаунтов (Google, GitHub, Microsoft) или корпоративных систем SSO.
    • Объединять несколько доменов удостоверений под одним Keycloak Realm.

    Федерация пользователей (LDAP / Active Directory)

    Федерация пользователей подключает Keycloak к существующему каталогу пользователей, например LDAP или Microsoft Active Directory. Пользователи хранятся во внешнем каталоге; Keycloak читает и (при необходимости) записывает данные пользователей из этого каталога.

    Как это работает

    1. Keycloak запрашивает сервер LDAP/AD для аутентификации пользователя при входе.
    2. Keycloak локально кэширует атрибуты пользователей для повышения производительности.
    3. Данные пользователя (имя пользователя, электронная почта, членство в группах) синхронизируются из каталога в Keycloak по запросу или посредством периодической полной синхронизации.

    Основные параметры конфигурации

    ПараметрОписание
    Connection URLURL сервера LDAP (например, ldap://ldap.example.com:389)
    Bind DNDistinguished Name, который Keycloak использует для привязки к серверу LDAP
    User DNБазовый DN, в пределах которого выполняется поиск пользователей
    Sync ModeREAD_ONLY: Keycloak читает из LDAP, но никогда не записывает обратно. WRITABLE: Keycloak может обновлять атрибуты пользователей в LDAP.
    Periodic Full SyncРасписание полной синхронизации пользователей из LDAP в Keycloak
    Periodic Changed-Users SyncРасписание инкрементальной синхронизации пользователей, изменённых с момента последней синхронизации

    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

    ТипПримеры
    OpenID ConnectGoogle, GitHub, Microsoft Entra ID (Azure AD), любой IdP, совместимый с OIDC
    SAML 2.0Active Directory Federation Services (ADFS), Okta, любой IdP SAML 2.0
    Social ProvidersGoogle, Facebook, GitHub, X (Twitter) (встроенные шаблоны провайдеров)

    Поток брокеринга

    1. Пользователь нажимает «Войти через Google» (или через другой внешний IdP) на странице входа Keycloak.
    2. Keycloak перенаправляет пользователя во внешний IdP для аутентификации.
    3. Внешний IdP аутентифицирует пользователя и возвращает его обратно в Keycloak с assertion (OIDC ID token или SAML assertion).
    4. Keycloak проверяет assertion, создаёт или связывает локальную учётную запись пользователя и выпускает собственные токены для клиентского приложения.

    Поток первого входа

    Когда пользователь аутентифицируется через внешний IdP впервые, Keycloak запускает First Login Flow, чтобы определить, как обработать нового пользователя:

    • Создать нового локального пользователя: автоматически создаётся новый пользователь Keycloak и связывается с внешней идентичностью.
    • Связать с существующим пользователем: если локальный пользователь с таким же адресом электронной почты уже существует, Keycloak может предложить пользователю подтвердить и связать учётные записи.
    • Требовать проверки профиля: пользователю предлагается проверить или заполнить свой профиль перед продолжением.

    First Login Flow полностью настраивается для каждого identity provider.

    Выбор между User Federation и IdP Brokering

    КритерийФедерация пользователей (LDAP/AD)IdP Brokering
    Расположение хранилища пользователейКорпоративный каталог (LDAP/AD)Внешняя система удостоверений (Google, ADFS)
    Выполнение аутентификацииKeycloak аутентифицирует через LDAP/ADАутентификация выполняется внешним IdP
    Подготовка пользователейПользователи синхронизируются из каталогаПользователи создаются при первом входе
    Лучше всего подходит дляВнутренних корпоративных пользователей в существующем каталогеSocial login, федерации с партнёрами, корпоративного SSO с внешним IdP