Поисковый запрос Active Directory для вложенных групп с шаблоном подстановки в фильтре поиска
Я пытаюсь разрешить пользователям из вложенных групп в Active Directory войти в мое приложение на основе весенней загрузки / безопасности. Я понял, как предоставить поисковый запрос через конфигурацию Spring-Security, но у меня возникли проблемы с самим поисковым запросом.
Вот поисковый запрос, который в настоящее время работает, как ожидалось:
(&(objectCategory=Person)(userPrincipalName=user1@domain.local)
(memberOf:1.2.840.113556.1.4.1941:=CN=parent_group1,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local))
Это работает, как и ожидалось, так как user1 принадлежит parent_group1 или одной из его подгрупп. Но у меня есть более одной parent_group, с постоянным префиксом. Поэтому я пытаюсь предоставить подстановочный знак в этом запросе как CN=parent_group*
, но это не работает.
Я видел вариант здесь, где каждая родительская группа может быть добавлена с помощью ИЛИ, например:
(&(objectCategory=Person)(userPrincipalName=user1@domain.local)
(|(memberOf:1.2.840.113556.1.4.1941:=CN=parent_group1,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local)
(memberOf:1.2.840.113556.1.4.1941:=CN=parent_group2,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local)
(memberOf:1.2.840.113556.1.4.1941:=CN=parent_group3,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local)
И это тоже работает. Но проблема в том, что каждый раз, когда добавляется новая родительская группа, ее необходимо обновлять. Я перешел по ссылке, указанной в ответе на поставленный выше вопрос, но оттуда ничего не работает.
В идеале я надеялся, что что-то подобное сработает (шаблон подстановки для parent_group):
(&(objectCategory=Person)(userPrincipalName=user1@domain.local)
(memberOf:1.2.840.113556.1.4.1941:=CN=parent_group*,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local))
Но это не работает. Это не возвращает никаких результатов. Может ли кто-нибудь помочь мне, если есть лучший способ сделать это?
Кроме того, возможно ли не упомянуть всю иерархию, как это? CN=parent_group*,OU=Another Group,OU=Groups,OU=Company,DC=Company-Domain,DC=local
Я изучал эту тему в течение нескольких дней и изучил большинство статей, представленных в Интернете или в SO, но пока ничего не работает с шаблоном подстановки с помощью команды chain.
1 ответ
Невозможно сделать то, что вы описываете. Вы бы хорошо обслужили одну родительскую группу, в которую вложены все ваши "другие" родительские группы. Каждый раз, когда создается новая родительская группа, вы вкладываете ее в свою основную группу, чтобы ей был предоставлен доступ. Это довольно распространенная модель.