我正在使用以下代码成功地为我们的 Active Directory 查询用户:
$filter = (&(objectCategory=person)(samaccountname=someusername));
$fields = array("samaccountname","mail","manager","department","displayname","objectGUID");
$user = ldap_search($ldapconnection, $baseDn, $filter, $fields);
结果数组为manager
属性提供了这个值:
CN=McBossy\, Boss,OU=Users,OU=CentralOffice,DC=ds,DC=example,DC=com
对我来说,这看起来像是一个杰出的名字。但是当我尝试查询经理的记录时,
$filter = (&(objectCategory=person)(dn='CN=McBossy\, Boss,OU=Users,OU=CentralOffice,DC=ds,DC=example,DC=com'));
$manager = ldap_search($ldapconnection, $baseDn, $filter, $fields);
查询失败PHP Warning: ldap_search(): Search: Bad search filter
我尝试了多种可能性,包括不同的引用、更多的括号、使用distinguishedName
而不是dn
等。
我做错了什么,获取经理记录的正确方法是什么?