Rose debug info
---------------

Синхронизация пользователей через LDAP в Keycloak

Один из способов подключить к Keycloak провайдер существующих пользователей — механизм, который называется User Federation. Он позволяет используя Kerberos или LDAP синхронизировать учетные записи из корпоративного хранилища. Если пользователей в хранилище много, и оргструктура организации предполагает вложенность, то это может усложнить получение подмножества учетных записей.

Так, например, в Active Directory используются следующие сущности:

  • CN = Common Name
  • OU = Organizational Unit
  • DC = Domain Component

Документация по LDAP с расшифровкой аббревиатур есть на сайте Microsoft.

В настройках LDAP провайдера необходимо указать User DN. Самый простой вариант — когда все учетные записи разложены по организационным единицам:


OU=Main,DC=Orgname,DC=ru

В этом случае Keycloak с легкостью найдет все учетные записи в юните, даже если внутри него есть какая-то вложенная структура. Для этого, правда, придется включить дополнительный параметр Search Scope: Subtree.

Но что делать если администраторы AD вместо создания OU сущностей добавляют нужных вам пользователей в CN? Другого способа, как дополнить описанное выше решение дополнительным фильтром для LDAP, я не нашел. В настройке Custom User LDAP Filter можно прописать все CN группы через оператор или |:


(&(objectCategory=Person)(sAMAccountName=*)(|(memberOf=CN=CMS_EDITOR,OU=Security,OU=Groups,OU=Central,OU=Main,DC=Orgname,DC=ru)))

В примеры указана только одна группа CMS_EDITOR.

Поделиться
Отправить
 210   6 мес   keycloak   ldap