PHP LDAP поиск - PullRequest
       49

PHP LDAP поиск

2 голосов
/ 10 мая 2011

У меня есть тестовая среда, которая включает в себя два сервера Windows 2003, один из которых работает под управлением IIS6.0 и php 5.2, а другой - контроллер домена. Я пытаюсь получить скрипт php для использования LDAP, чтобы найти всех пользователей на сервере.

Домен openDesk.local и пользователи и пользователи OU по умолчанию.

Я до сих пор могу подключаться и связываться с контроллером домена, я просто не могу найти его, у меня около 1 часа опыта работы с LDAP, поэтому я уверен, что это простая синтаксическая ошибка, связанная с поиском Я запускаю этот код, я получаю «поиск не удался».

<?php

$host = "192.168.1.98"; 
$user = "username"; 
$pswd = "password";

$ad = ldap_connect($host)
  or die( "Could not connect!" );

ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3)
 or die ("Could not set ldap protocol");

$bd = ldap_bind($ad, $user, $pswd)
  or die ("Could not bind");

$dn = "OU=users,DC=openDesk,DC=local";

$filter = "cn=*";


$search = ldap_search($ad, $dn, $filter)
    or die ("Search failed");

$entries = ldap_get_entries($ad, $search);

echo $entries["count"];


?>

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Запросы LDAP должны быть заключены в круглые скобки.Вы также можете выполнить поиск по атрибуту без использования подстановочного знака.Нечто подобное "(objectClass = user)" будет работать как фильтр.

Подробнее о синтаксисе поиска AD можно прочитать здесь: http://msdn.microsoft.com/en-us/library/aa746475(v=vs.85).aspx

1 голос
/ 10 мая 2011

Хотя это не дает прямого ответа на ваш вопрос, когда я работал с LDAP в другой жизни, я обнаружил, что наличие браузера LDAP было абсолютно бесценным, когда дело дошло до синтаксиса запроса. Я использовал LDAP-браузер Softerra . Как только вы сможете увидеть пути, синтаксис больше не будет проблемой.

...