0

在我们的企业 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 模块执行此操作,则可以加分!

4

2 回答 2

1

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

于 2011-11-18T13:01:26.037 回答
0

第二次搜索实际上可以是查找,因为您拥有完整的 DN。您不应该只删除 CN,而是使用整个内容。

于 2011-11-21T01:49:16.577 回答