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, где вы можете использовать, чтобы определить, является ли пользователь членом группы (которая также может иметь вложенные группы)?

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

3 ответа

Решение

Хорошо - кажется, что ограничение уровня доменного леса ниже, чем в 2003 году.

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

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

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

Get-ADGroupMember "groupname" -recursive

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

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

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

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

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