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

使用Net::LDAP或ldapsearch返回对象属性的属性,ldap,ldap-query,netldap,Ldap,Ldap Query,Netldap,在我们的公司LDAP结构中,“用户”有两个属性: uid=用户的id manager=用户管理器的DN 因为我正在编写一个脚本来查找用户的组织链,所以我希望能够通过一个查询找到经理的uid。现在,我必须在两个查询中完成: $ 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

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

uid=用户的id

manager=用户管理器的DN

因为我正在编写一个脚本来查找用户的组织链,所以我希望能够通过一个查询找到经理的uid。现在,我必须在两个查询中完成:

$ 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模块实现这一点,那么您将获得额外的积分

否。但是,通过设计合理的API,应该可以在一个连接中完成此任务,但不能在一个搜索请求中完成。如果您使用,则可以使用编写插件来更改搜索结果的内容,然后再将其返回给客户端。该插件可以搜索管理器条目并将结果附加到搜索结果。

第二次搜索实际上可以是一次查找,因为您拥有完整的DN。你不应该仅仅去掉CN,而是使用整个CN