我需要从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中获取数据。
如何制作此过滤器?
感谢帮助
答案 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)) 可能有用。