Perl Net :: LDAP - 没有搜索的Fetch DN?

时间:2013-09-30 15:39:34

标签: perl ldap

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

获取

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