【问题标题】:ldapsearch - filtering ou in dnldapsearch - 在 dn 中过滤 ou
【发布时间】:2021-02-19 20:57:15
【问题描述】:

我知道你不能简单地过滤dn,但我有这样的事情:

dc=lvl3,dc=lvl2,dc=lvl1,有人可以有这样的dnCN=Last, First,OU=ou1,OU=retired,OU=ou1,DC=lvl3,DC=lvl2,DC=lvl1.

有没有一种方法可以为那些在任何 ou 中没有“退休”的人过滤结果?

【问题讨论】:

    标签: ldap ldap-query


    【解决方案1】:

    没有。不作为 LDAP 过滤器。

    您当然可以进行搜索,然后在客户端进行排序。

    一般来说,用户“特征”的组织应该使用属性而不是目录结构来完成。

    类似:

    • employeeType=活跃
    • employeeType=退休
    • employeeType=等

    为了避免这些情况。

    【讨论】:

      【解决方案2】:

      可能,但这取决于服务器的 LDAP 实现。

      一种过滤语法,允许匹配 DN 属性(除了条目属性):

      (ou:dn:=Retired)
      

      (在 LDAP 规范中,这称为“dnAttributes”字段,是“extensibleMatch”过滤器类型的一部分。参见RFC 4511 section 4.5.1.7.7

      并非所有目录服务器都支持这一点。例如,OpenLDAP 可以正确处理它,但 Active Directory(MS AD 和 Samba)会忽略它,就好像您使用了 (ou=Retired) 一样。

      如果您的服务器支持此功能,则只需像往常一样将过滤器包装在 (!(...)) 中即可完成否定匹配。

      但是,在其他情况下,您应该 a) 使用自定义属性,或者 b) 可能检查全局“活跃员工”组或类似的成员资格。

      【讨论】:

        猜你喜欢
        • 2021-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-26
        • 2014-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多