使用Net :: LDAP或ldapsearch返回对象属性的属性

时间:2011-11-17 20:49:59

标签: ldap ldap-query netldap

在我们的公司LDAP结构中,“用户”有两个属性:

uid =用户的ID

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模块执行此操作,则可获得奖励积分!

2 个答案:

答案 0 :(得分:1)

没有。但是,应该可以使用设计合理的API在一个连接中完成此任务,但不能在一个搜索请求中完成此任务。如果您使用UnboundID Directory Server,则可以使用Server SDK编写插件,以便在将搜索结果返回给客户端之前更改搜索结果的内容。该插件可以执行搜索管理器条目并将结果附加到搜索结果。

答案 1 :(得分:0)

第二次搜索实际上可以是查找,因为您拥有完整的DN。你不应该只剥离CN,使用整个东西。