У меня возникают проблемы с LDAP Search Filter
. То, что мне нужно получить, – это все пользователи определенной группы LDAP
которая является OU=Staff,OU=Users,OU=Accounts,DC=test,DC=local
Мой поиск:
(&(objectCategory=user)(OU=Staff,OU=Users,OU=Accounts,DC=test,DC=local))
В настоящее время он не возвращает никаких результатов. Что мне не хватает?
Вы должны сделать две вещи
OU=Staff,OU=Users,OU=Accounts,DC=test,DC=local
objectClass
. Используя PHP, поиск будет выглядеть так (на основе этого примера PHP ):
<?php //You must bind, first // using ldap bind $ldaprdn = 'yourdomain\nic_hubbard'; // ldap rdn or dn $ldappass = 'password'; // associated password // connect to ldap server $ldapconn = ldap_connect("yourad.test.local") or die("Could not connect to LDAP server."); if ($ldapconn) { // binding to ldap server $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); $dn = "OU=Staff,OU=Users,OU=Accounts,DC=test,DC=local"; $filter="(objectClass=user)"; $justthese = array("cn", "sn", "givenname", "mail"); $sr=ldap_search($ldapconn, $dn, $filter, $justthese); $info = ldap_get_entries($ldapconn, $sr); echo $info["count"]." entries returned\n"; } ?>
Вы можете проверить в командной строке это (точные параметры различаются, это работает с последними клиентскими инструментами openldap):
ldapsearch -H ldap://yourad.test.local -x -D "yourdomain\nic_hubbard" -W -b "OU=Staff,OU=Users,OU=Accounts,DC=test,DC=local" -s sub "(objectClass=user)"