Назад | Перейти на главную страницу

запрос ldap с вложенной группой

Я пытаюсь создать ldap-запрос к MS Active Directory. Я обнаружил, что для этого существует тип LDAP_MATCHING_RULE_IN_CHAIN. В результате получается следующий синтаксис:

(&(sAMAccountName=Benna)(memberof:1.2.840.113556.1.4.1941:=CN=Group1,OU=Root,DC=domain,DC=local))

Проблема в следующем:

Запрос * перечислить в Интернете первую вложенную группу.

В моем примере Group1 имеет следующие группы участников:

И Бенна находится в Группе Членов Домена, но запрос не дал мне результата *.

Когда я меняю фильтр на

(&(objectClass=user)(memberof:1.2.840.113556.1.4.1941:=CN=Group1,OU=Root,DC=domain,DC=local))

Я вижу, что запрос перечисляет только членов группы «Администраторы домена» *.

Вот почему он не соответствует моему запросу выше.

По какой причине это происходит?

* Протестировано с помощью adsiedit.msc

РЕДАКТИРОВАТЬ:

хорошо - похоже, что это причина

https://support.microsoft.com/en-us/kb/275523

но можно ли построить запрос к вложенной группе также для атрибута primaryGroupID? Или есть ли способ создать единый запрос ldap, с помощью которого вы можете определить, является ли пользователь членом группы (которая также может иметь вложенные группы)?

Спасибо, Томас

Определение членства во вложенной группе может быть сложной задачей с использованием чистых запросов LDAP. Обратите внимание, что memberOf - это сконструированный атрибут. Также обратите внимание, что primaryGroupID - это только идентификатор. Хотя MMC покажет основные группы на вкладке членства учетной записи, отличительное имя объекта фактически не помещается в атрибут членства этой группы.

Как отмечает мегаморф, вам необходимо рекурсивно запрашивать информацию о членстве в каждой группе. Продукт моей компании, Carbon, представляет собой веб-инструмент управления LDAP, который, помимо прочего, может отображать членство во вложенных группах в виде графика. Поскольку это веб-интерфейс, вы можете использовать его из Linux (или Mac, или Windows), если у вас есть поддерживаемый браузер. Проверьте это на steelhive.com. Вы можете скачать бесплатную демоверсию. Он представляет собой виртуальное устройство OVA, ориентированное на VMware ESXi 5+.

Довольно неприятно работать со старыми инструментами командной строки, но модуль ActiveDirectory Powershell, который вы получаете с инструментами администрирования сервера Remore, имеет простой способ вернуть всех членов вложенной группы:

Get-ADGroupMember "имя группы" -рекурсивно

Вот статья в kb, в которой объясняется команда: https://technet.microsoft.com/de-de/library/ee617193.aspx

Это работает, если ваш AD установлен как минимум на Server 2008 R2.

ок - похоже, что ограничение сделано на уровень леса домена ниже 2003.

https://support.microsoft.com/en-us/kb/275523

После изменения режима леса на 2003 он должен работать. Я изменил, но в настоящее время это не работает ... подожду несколько минут и надеюсь, что это решение.