Как запросить LDAP адреса электронной почты членов posixGroup?

Я использую сервер OpenLDAP с группами типа posixGroup и пользователями типа inetOrgPerson.

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

Тип posixGroup хранит только uid членов в атрибуте memberUid.

Тип inetOrgPerson не хранит информацию о членстве в группе.

Итак, в основном мне нужно запросить группу, извлечь идентификаторы пользователей, использовать эти идентификаторы пользователей, чтобы найти соответствующие узлы inetOrgPerson, а затем получить атрибут почты.

Я надеялся, что смогу сделать все это в одном отфильтрованном запросе, но, похоже, мне не удалось найти правильный синтаксис, чтобы это произошло. Этот сценарий кажется более сложным, чем большинство примеров запросов, которые я могу найти в Google.

Кроме того, я пытаюсь сделать все это с помощью сценария sh, если это возможно (в Ubuntu), поэтому у меня доступна команда ldapsearch.

Любые идеи?


person Craig S. Dickson    schedule 22.08.2011    source источник


Ответы (1)


Это работа для оверлея memberof. Он поддерживает атрибут memberOf для каждого пользователя, скажем, это обратное отображение memberUID в каждой группе. Затем вы просто отфильтруете (& (objectClass = inetOrgPerson) (memberOf = {0})), где {0} становится именем группы.

person user207421    schedule 22.08.2011
comment
Это действительно работает? Я прочитал memberof оверлейную документацию, что для нее требуется атрибут member в группе, которая содержит полное DN, тогда как posixGroup хранит только memberUid. Для решения этой проблемы требуется дополнительная информация (например, где в дереве искать?). - person larsks; 22.07.2013
comment
действительно, memberof, похоже, работает только для атрибута member, а не memberUid, как в posixGroup - person Rudolf Mayer; 18.02.2014