Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Подключение Active Directory через Keycloak и синхронизация пользователей

ОС Windows 10 не поддерживает создание контроллера домена Active Directory. Если у вас установлена ОС Windows 10, рекомендуется развернуть Windows Server на виртуальной машине и использовать его для создания Active Directory.

1. Создание нового realm

По умолчанию в Keycloak существует только realm master. Для интеграции с Active Directory необходимо создать отдельный realm, который будет использоваться как источник аутентификации.

Для добавления realm:

  1. В верхнем левом углу нажмите Add realm.

  2. Введите произвольное название, например, "active-directory" и нажмите Create.

    ad new realm
  3. Слева в панели выберите Realm Settings и заполните параметры нового realm:

    1. На вкладке General введите:

      • Display name — Active Directory.

        realm settings 1
    2. На вкладке Themes введите:

      • Login theme — cloudlink

      • Email theme — cloudlink

        realm settings 2
    3. На вкладке Localization введите:

      • Internationalization — Enabled

      • Supported locales — русский

      • Default locale — русский

        realm settings 3
  4. Нажмите Save.

  5. Скопируйте ссылку на OpenID Endpoint Configuration.

    Этот endpoint содержит метаданные OpenID Connect и будет использоваться при настройке Identity Provider в realm Portal.

    Пример: https://auth.example.com/auth/realms/active-directory/.well-known/openid-configuration

2. Настройка федерации пользователей через Active Directory

  1. В панели слева выберите User federation и нажмите Add LDAP Provider.

  2. Укажите следующие параметры для федерации пользователей:

    • Console display name — active-directory

    • Vendor — Active Directory

    • Connection URL — ldap://<active-directory-ip-or-dns>

    • Bind type — simple

    • Bind DN — CN=dadmin,CN=Users,DC=test,DC=ad

    • Bind credentials — <password>

    • Edit mode — READ_ONLY

    • Users DN — CN=Users,DC=test,DC=ad

    • Trust email — On

      user federation
Значения Bind DN и Users DN зависят от структуры Active Directory. Если пользователи находятся в другом OU, укажите соответствующий DN.
  1. Нажмите Save.

  2. Проверьте подключение, используя Test connection и Test authentication.

  3. Нажмите Sync all users и убедитесь, что синхронизация завершилась без ошибок.

При синхронизации в Keycloak создаются локальные представления пользователей. Пароли не копируются — аутентификация выполняется через Active Directory.

3. Создание клиента в realm

Для подключения realm Portal к realm active-directory необходимо создать OpenID Connect client, который будет использоваться для установления доверия между этими realm.

  1. Перейдите в realm active-directory.

  2. В левой панели выберите Clients и нажмите Create client.

    realm client 1

  3. Укажите параметры клиента:

    • Client IDactive-directory

    • Valid redirect URIs*

    • Valid post logout redirect URIs*

    • Web origins*

    • Client authenticationOn

      realm client 2

      Использование значения * разрешает перенаправления и запросы с любых URL. Такой вариант допустим в тестовой или закрытой среде. В продуктивной среде рекомендуется указывать конкретные URL портала.
  4. Нажмите Save.

  5. Перейдите на вкладку Credentials созданного клиента.

  6. Скопируйте значение поля Client Secret.

Client Secret используется для подтверждения доверия между realm Portal и realm active-directory. Это значение потребуется при настройке Identity Provider.

4. Настройка Identity Provider в realm Portal

  1. Перейдите в realm Portal.

  2. В левой панели выберите Identity Providers и нажмите Add provider.

  3. Выберите тип Keycloak OpenID Connect.

  4. Укажите параметры:

    • Aliasactive-directory

    • Display nameActive Directory

    • Discovery endpoint — сохранённый ранее OpenID Endpoint Configuration

    • Client IDactive-directory

    • Client Secret — значение Client Secret, полученное в realm active-directory

      portal client
  5. Сохраните изменения.

  6. Повторно откройте настройки подключения и установите:

    • Trust Email — On

    • Sync mode — Force

  7. Нажмите Save.

    change identity providers settings

5. Проверка синхронизации Keycloak с Active Directory

  1. В интерфейсе Keycloak в левой панели выберите Clients.

  2. Откройте URL консоли аккаунта — Keycloak Account Manager.

  3. В правом верхнем углу нажмите Вход.

    ad sign in
  4. Введите учетные данные любого пользователя из Active Directory.

  5. После успешной аутентификации убедитесь, что профиль пользователя отображается корректно.

    ad sign in name