Использование Net::LDAP или ldapsearch для возврата атрибутов атрибутов объекта

В нашей корпоративной структуре LDAP «пользователь» имеет два атрибута:

uid = идентификатор пользователя

manager = DN менеджера пользователя

Поскольку я пишу скрипт, чтобы узнать цепочку организации для пользователя, я хотел бы иметь возможность найти uid менеджера с помощью одного запроса. Прямо сейчас я должен сделать это в 2 запросах:

$ ldapsearch -h ldap.example.com -p 389 -b dc=example,dc=com uid=myuid manager
dn: cn=mycn,L=AMER,DC=EXAMPLE,DC=COM
manager: cn=mymanagercn,L=AMER,DC=EXAMPLE,DC=COM

Разберите значение cn 'mymanagercn', затем выполните другой запрос:

$ ldapsearch -h ldap.example.com -p 389 -b dc=example,dc=com cn=mymanagercn uid
dn: cn=mymanagercn,L=AMER,DC=EXAMPLE,DC=COM
uid: mymanageruid

Есть ли способ сделать это с 1 запросом? Бонусные баллы, если вы можете сделать это с помощью модулей Net::LDAP Perl!


person wsaxton    schedule 17.11.2011    source источник


Ответы (2)


Нет. Однако должно быть возможно с помощью правильно разработанного API выполнить эту задачу в одном соединении, но не в одном поисковом запросе. Если вы используете сервер каталогов UnboundID, вы можете написать подключаемый модуль, используя Server SDK для изменения содержимого результатов поиска до того, как они будут возвращены клиенту. Плагин может выполнять поиск записи менеджера и добавлять результаты к результатам поиска.

person Terry Gardner    schedule 18.11.2011

Второй поиск действительно может быть поиском, так как у вас есть полное DN. Вы не должны просто вырезать CN, используйте все это.

person user207421    schedule 21.11.2011