【问题标题】:How to query Organizational Units from a given DN in Perl如何从 Perl 中的给定 DN 查询组织单位
【发布时间】:2011-11-09 09:22:27
【问题描述】:

我需要从给定的 DN stringh 中检索所有组织单位,我正在使用 Net::LDAP 模块和这个小脚本:

my $msg = $ldap->search(
    base=>'DC=sample1,DC=sample2',
    filter=>'(objectclass=User)',
);
foreach $entry ($msg->entries) {
    $dn = $entry->dn;
    #how can i retrieve OUs?
}

例如,如果 dn 返回该字符串:

CN=Sample Sample,OU=One,OU=Two,DC=sample1,DC=sample2

我想检索一和二。

【问题讨论】:

    标签: perl ldap ou netldap


    【解决方案1】:

    使用基础对象dc=example1,dc=sample2(ou=*) 存在过滤器发出一级搜索请求。鉴于这些结果,使用每个返回的ou(ou=*) 的存在过滤器发出一个级别搜索。对于这些搜索中的每一个,指定大小限制和时间限制。有关搜索请求的更多信息,请参阅 "LDAP: Using ldapsearch""LDAP: programming practices"

    【讨论】:

    • “一级搜索”是什么意思?抱歉,这是我第一次使用 LDAP 查询。有没有办法从我所做的搜索开始检索这些值?
    • “一级搜索”将搜索限制为条目的直接下属。例如,在 dc=sample1,dc=sample2 的一级搜索将仅返回 dc=sample1,dc=sample2 正下方的条目,例如您的示例中的 ou=two。 LDAP 具有三个“范围”,“base”(条目本身)、“one”(如上所述,直接下属)和“sub”(目标和目标本身下方的所有条目)。在 dc=example1,dc=example2 范围内的搜索将返回 ou=two 和该级别的所有其他条目,但没有低于该级别的条目。然后代码可以遍历这些。
    【解决方案2】:

    最详细的“(&(ou=*)(objectClass=organizationalunit))”

    【讨论】:

    • 问题是寻找一些perl 代码来检索OU。在添加此评论时,它似乎没有提供该答案。考虑edit你的答案,以提供更多关于你的意思的细节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多