【问题标题】:How do I use a wildcard in an attribute with ldapsearch and Active Directory?如何在 ldapsearch 和 Active Directory 的属性中使用通配符?
【发布时间】:2020-09-24 15:05:45
【问题描述】:

我在 AD 中有用户的 memberOf 属性具有 cn=ad-users103,ou=hr,ou=groups,dc=mycorp,dc=comcn=ad-users203,ou=hr,ou=groups,dc=mycorp,dc=com。我想使用像cn=ad-users* 这样的过滤器,但它没有返回结果。我在 Linux 中使用ldapsearch 来测试我的过滤器。

我尝试过使用这样的过滤器来返回用户信息:

ldapsearch -D "cn=admin..." -b "dc=mycorp,dc=com" -x -H ldaps://ldap.mycorp.com -w $PASS -E pr=100/noprompt "memberOf=cn=ad-users203,ou=hr,ou=groups,dc=mycorp,dc=com"

当我添加通配符时(以here 为例),我没有得到任何结果:

ldapsearch -D "cn=admin..." -b "dc=mycorp,dc=com" -x -H ldaps://ldap.mycorp.com -w $PASS -E pr=100/noprompt "memberOf=cn=ad-users*"

我尝试将 splat 移动到过滤器中的不同位置,但无济于事。搜索应该以这种方式工作,还是我需要改用 (&(memberOf=cn=ad-users103...)(memberOf=cn=ad-users203...)) 之类的东西?

【问题讨论】:

    标签: linux active-directory ldap-query


    【解决方案1】:

    memberOF 是 distinctName 属性值,并且 distinctNames 不支持通配符,如下所示:https://stackoverflow.com/a/28984362/88122

    我认为你的 AND 搜索

    (&(memberOf=cn=ad-users103...)(memberOf=cn=ad-users203...))
    

    应该是和 OR 搜索:

    (|(memberOf=cn=ad-users103...)(memberOf=cn=ad-users203...))
    

    【讨论】:

    • 好的,感谢您的澄清。我不知道通配符的处理方式因属性而异。您对 OR 过滤器的看法也是正确的。
    猜你喜欢
    • 2022-10-02
    • 2021-09-06
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多