在我们的公司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模块执行此操作,则可获得奖励积分!
答案 0 :(得分:1)
没有。但是,应该可以使用设计合理的API在一个连接中完成此任务,但不能在一个搜索请求中完成此任务。如果您使用UnboundID Directory Server,则可以使用Server SDK编写插件,以便在将搜索结果返回给客户端之前更改搜索结果的内容。该插件可以执行搜索管理器条目并将结果附加到搜索结果。
答案 1 :(得分:0)
第二次搜索实际上可以是查找,因为您拥有完整的DN。你不应该只剥离CN,使用整个东西。