我正在尝试使用PHP获取我的活动目录联系人,这是域名:`' OU =商店,OU = US,OU =测试,DC = com,DC = def,DC =内部&#39 ;
但是,我有12个国家/地区需要搜索,因此我们不会搜索美国'我还需要搜索FRA' '英国',...&我只需要“商店”中的联系人。 OU,我尝试过类似的东西,但搜索过滤器错误:OU=Shop,OU=*,OU=test,DC=com,DC=def,DC=intra
。
那么如何制作一个类似的搜索过滤器,只返回每个国家/地区的商店?
答案 0 :(得分:1)
简短的回答是,您无法使用DN创建搜索过滤器 - 这只是搜索“root”,即搜索向下开始的位置。
用SQL术语来思考它:搜索不同的DN上下文就像在不同的表中搜索联系人,每个国家一个。在这种情况下,使用SQL您必须指定每个表:select * from US,MX,ES,...
。
在LDAP中,您必须找到联系人对象共享的属性。
的内容(&(objectclass=contact)(description=shop))
或者在你的情况下,objectclass=contact
就足够了。
如果在将联系人唯一标识为群组的属性中没有相似之处,那么您就不走运了。
答案 1 :(得分:1)
就像@mvrejin说的那样,你无法以这种方式创建搜索过滤器,我建议将你正在谈论的那些联系人或商店添加到某个组(例如Shops_)并在搜索过滤器中添加该组,如下所示:
$search_filter = '(&(objectCategory=person)(memberOf=cn=Shops_,ou=something,DC=com,DC=def,DC=intra))';