однострочный запрос LDAP, который перечисляет пользователей из группы в супергруппе - PullRequest
19 голосов
/ 26 мая 2011

У меня есть схема, которая выглядит так:

  1. Пользователи существуют как UserA, UserB, UserC.
  2. Группы существуют как OverGroup, SubGroup.
  3. OverGroup автоматически добавляет в свой состав новых пользователей, таких как UserA, UserB и т. Д.
  4. Подгруппа, которую я создал сам. Я установил OverGroup, чтобы быть членом Подгруппы.

Я хочу иметь возможность подгруппы запроса в одну строку и извлекать не OverGroup, т. Е .:

Values:  
CN=OverGroup,OU=Groups,DC=example,DC=com

, но полное перечисление фактических пользователей (пользователей A, B, C) в пределах OverGroup, т. Е .:

Values:  
CN=UserA,OU=OtherOU,DC=example,DC=com
CN=UserB,OU=OtherOU,DC=example,DC=com
CN=UserC,OU=OtherOU,DC=example,DC=com

Существует ли однострочный фильтр LDAP, который мог бы получить это? (Он будет помещен в раздел 'ldap' конфигурации ExternalAuth в экземпляре трекера запросов. Я уверен, что я могу сделать это только с одним запросом, который может понять модуль ExternalAuth.)

Все, что я пробую, не работает, и, судя по моему прочтению, невозможно перечислить список пользователей в группе, которая является членом другой группы, с любым однострочным запросом. Мысли?

Ответы [ 2 ]

29 голосов
/ 21 сентября 2011

Active Directory имеет специальную опцию фильтра поиска, которая позволяет фильтровать связанные объекты, например, вложенные группы. Возможность описана здесь .

Вот пример того, как получить всех пользователей в группе, включая вложенные группы:

(&(objectClass=user)(memberof:1.2.840.113556.1.4.1941:={0}))

где {0} - DN родительской группы.

7 голосов
/ 01 августа 2013
(&(objectClass=user)(memberof:1.2.840.113556.1.4.1941:=CN=MPV_BedPlacement,OU=Security Groups,OU=Groups,OU=CCHCS,DC=CCHCS,DC=LDAP))

Вы должны добавить полное DN для группы, а не фигурные скобки.

...