如何在查询LDAP中排除结果

时间:2019-10-16 16:26:23

标签: filter ldap symfony4

我需要从AD创建一个Web目录。但是,我必须在结果中排​​除树的一部分。

要示意结构:

-Telephony
----Special
----Users
----Other

我想排除OU = Special。或定位OU = Users和OU = Other,但不必用“ OU”写一行。

我四处搜寻查询选项,我在这里,但这并不排除该组。

        $ldap = Ldap::create('ext_ldap', array(
            'host' => 'XXX.XXX.XXX.XXX',
        ));
        $ldap->bind('dn', 'password');

        $query = $ldap->query('ou=Telephony,ou=XXXX,dc=XXXX,dc=XXXX,dc=XXXX,dc=XXXX', '(cn=*)', ['filter' => '|(ou=Users*)(ou=Other*)']);

但是我仍然从Special中获取数据。

如何制作此过滤器?

感谢帮助

1 个答案:

答案 0 :(得分:0)

那要看。

在LDAPv3 RFC 2254中定义的ExtensibleMatch search filter要求LDAP服务器识别称为可扩展匹配过滤器的搜索元素。

ExtensibleMatch搜索过滤器将允许此操作,但是,并非所有LDAP供应商都支持ExtensibleMatch搜索过滤器。 (以Microsoft Active Directory为例)。

在您的示例中,过滤器类似于:     (&(|(ou:dn:= Users)(ou:dn:= Others))(objectclass = inetorgperson)(sn = willeke)) 可能有用。