Поисковый запрос 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 ответ

Решение

Невозможно сделать то, что вы описываете. Вы бы хорошо обслужили одну родительскую группу, в которую вложены все ваши "другие" родительские группы. Каждый раз, когда создается новая родительская группа, вы вкладываете ее в свою основную группу, чтобы ей был предоставлен доступ. Это довольно распространенная модель.

Другие вопросы по тегам