Я успешно запрашиваю нашу 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
и т. д.
Что я делаю не так и как правильно получить запись менеджера?