Я пытаюсь получить все группы AD для аутентифицирующего пользователя в моем приложении Java, где группы происходят из двух разных организационных единиц. Пока что я могу получить только один набор групп или другой, используя Spring Security и установив базу поиска либо:
OU=RoleGroups,OU=UEU,OU=rEU,DC=ah1,DC=ad,DC=megacorp,DC=com
или
OU=RoleGroups,OU=MOR,OU=rEU,DC=ah1,DC=ad,DC=megacorp,DC=com
Они возвращают результат, только когда я использую их с простым поисковым фильтром:
(member=CN=Adam,OU=Users,DC=ah1,DC=ad,DC=megacorp,DC=com)
Spring Security с библиотекой spring-security-ldap
позволяет мне сделать только один запрос, в противном случае мне придется переопределить сторонние библиотечные классы, чтобы сделать мой второй вызов.
Я только что пытался понять, могу ли я применить что-либо из этих двух SO вопросов:
Синтаксис корневого запроса LDAP для поиска более одного определенного подразделения
Spring LDAP-аутентификация с многопользовательским OU и множественным доступом CNs
но решение все еще ускользает от меня. Насколько я могу судить, изменив все на группы вместо пользователей, я должен сделать следующее:
Использовать порт 3268 вместо 389
Использовать поисковую базу DC=ah1,DC=ad,DC=megacorp,DC=com
Использовать поисковый фильтр (&(objectCategory=RoleGroup)(objectclass=group)(member={0}))
и это должно запустить мой запрос как «поиск в глобальном каталоге». Я не могу заставить это работать - никакие результаты не возвращаются - с любым изменением моей базы поиска от нулевой до строки нулевой длины к вышеупомянутому, и изменяя мой поисковый фильтр, мы надеемся, разумно.
Существует также метод поиска в глобальном каталоге AD, использующий какую-то числовую ссылку на userAccountControl
и т. Д., Но при глубоком погружении в Microsoft AD далеко не ясно, существует ли аналогичный атрибут groupControl.
Я вижу подразделение организации под названием RoleGroups
, и это Active Directory, но я не знаю, должен ли я ссылаться на него в моем поисковом фильтре, как показано выше:
&(objectClass=group)(member={0}))
или
&(objectCategory=RoleGroup)(objectclass=group)(member={0}))
где у меня есть objectClass
, objectclass
, objectCategory
или objectcategory
и ничего, кроме проб и ошибок, чтобы направлять меня - и до сих пор это все ошибки.
Полное отсутствие возвращаемых групп при попытке поиска из базы поиска DC=megacorp,DC=com
с использованием простого фильтра вызывает у меня подозрение, что я, возможно, настроил что-то не так. Но что это, я не знаю. Я установил доступные свойства конфигурации Spring, такие как searchSubtree=true
и derefLink=true