Perl Net::LDAP - 无需搜索即可获取 DN



我有LDAP条目的DN。我知道我可以搜索它: 做这样的事情:

my $search = $ldap->search( 
    base => $dn, 
    scope => "base",
    filter => "(objectclass=*)",
);

但是,我不需要进行搜索。我有 DN。我只想拉出 DN 条目并直接对其进行操作。像这样:

my $dn_entry = $ldap->get( $dn );

有没有办法从 DN 字符串本身获取 DN 条目,或者即使您知道 DN 本身也必须搜索该条目?

使用 LDAP,客户端必须始终搜索或使用扩展操作来获取数据。如果您对与条目关联的所有属性感兴趣,并且 DN 已知,请在搜索请求中使用以下参数:

  • baseObject:已知的 DN
  • 搜索范围:基地
  • 过滤器:(&)(objectClass=*)
  • 要返回的属性列表。某些 API 对所有用户属性使用 *,对所有操作属性使用 +

听起来你说的是你存储了"可分辨名称"(字符串)而不是 DN 条目(Net::LDAP::Entry对象)。 如果是这种情况,我相信您必须从 DN 创建一个新的Net::LDAP::Entry对象。 文档指示您可以将操作直接应用于此类对象,而无需与服务器同步,但这不会提供给定 DN 的所有数据。 如果您需要服务器的数据,则需要通过$ldap->search(...)获取。

您是否考虑过使用 Net::LDAP::LDIF 机制在本地存储 DN 数据?

最新更新