cn=John Smith,ou=Accounts,o=My Company,c=US
Каждый раздел такой ссылки отмечается запятой, а вся последовательность читается справа налево. Ссылка читается как ..
country = US
organization = My Company
organizationalUnit = Accounts
commonName = John Smith
Так же как и при организации структуры каталога
на жестком диске, в данном способе нет жестких
правил по организации структуры, и менеджер
сервера директории LDAP допускает любую структуру,
подходящую для выбранной цели. Однако имеется
ряд соглашений. Суть их в том, что вы не можете
написать код доступа к серверу директории, не
зная его структуры, так же как вы не можете
использовать базу данных без представления о ее
предназначении.Пример полной программы
Поиск информации для всех записей, где фамилия начинается с "S", в сервере директории, вывод на дисплей и извлечение с именем и email-адресом.
Пример 1. Пример поиска в LDAP <?php // базовая последовательность в LDAP это соединение, связь, // поиск, интерпретация поиска, результат, закрытие соединенияecho "<h3>LDAP тест запроса</h3>"; echo "Соединение ..."; $ds=ldap_connect("localhost"); // должен существовать LDAP-сервер! echo "результат соединения ".$ds."<p>";if ($ds) { echo "Установка связи ..."; $r=ldap_bind($ds); // это "anonymous" связь, обычно доступ // только для чтения, вывод "Результат связи.." echo "Результат связи ".$r."<p>"; echo "Поиск для (sn=S*) ..."; // Поиск записи с фамилией $sr=ldap_search($ds,"o=My Company, c=US", "sn=S*"); echo "Результат поиска ".$sr."<p>"; echo "Количество возвращенных записей ".ldap_count_entries($ds,$sr)."<p>"; echo "Получение записей ...<p>"; $info = ldap_get_entries($ds, $sr); echo "Данные для ".$info["count"]." объектов возвращены:<p>"; for ($i=0; $i<$info["count"]; $i++) { echo "dn is: ". $info[$i]["dn"] ."<br>"; echo "первая запись cn: ". $info[$i]["cn"][0] ."<br>"; echo "первая запись email: ". $info[$i]["mail"][0] ."<p>"; } echo "Закрытие соединения"; ldap_close($ds);} else { echo "<h4>Нет соединения с LDAP сервером</h4>"; } ?> |