Роль LDAP-поиска
Часто задаваемый вопрос: если Keycloak самостоятельно подключается к Active Directory (AD) и передает в токене SID пользователя вместе со списком его групп, зачем Business Studio выполняет собственный дополнительный LDAP-запрос?
Основная причина: обработка рекурсивных (вложенных) групп.
При федерации с AD Keycloak передает в токене только те группы, в которых пользователь состоит напрямую. Если в AD настроена вложенность групп (например, Группа А входит в Группу Б, которая является частью Группы В), то Keycloak передаст в токене только Группу А.
Business Studio с помощью собственного LDAP-запроса рекурсивно разворачивает всю цепочку вложенности и определяет полный список групп пользователя, включая транзитивные. Это необходимо для корректного применения прав доступа и лицензий, настроенных на родительские группы в AD.
Когда настройка LDAP-поиска не требуется?
Если в вашей инфраструктуре AD отсутствуют вложенные группы или управление правами осуществляется исключительно через прямое членство, выполнять LDAP-поиск со стороны Business Studio избыточно.
В этом случае вы можете отключить LDAP-поиск, выполнив следующие шаги:
- Настройте передачу данных в Keycloak: настройте мапперы
objectSidиGroup Membership, чтобы SID и список групп передавались напрямую в токене аутентификации. - Отредактируйте конфигурацию: в файле
appsettings.jsonудалите или закомментируйте секцию"Ldap".
Система продолжит работу в штатном режиме: значение UserIdClaim будет считываться напрямую из токена, а прямой поиск в LDAP выполняться не будет.