Получение данных из Active Directory посредством PHP

Сам за себя лучше всего расскажет мой кусок кода. Все сдобрено максимально большим количеством комментариев. По формату построения LDAP запросов полезно почитать вот этот мануал. Ничего толковее к сожалению найти не смог.
Вот результат:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
$ldap_user='gribov.p'; $ldap_pass='ргшкуцудцс'; $filter = "(telephonenumber=*9657400222*)"; // устанавливаем фильтр выборки из AD //(company=*Русский Север*) $attr=array("displayname","useruid2","title","telephonenumber","department","mail","jpegphoto","homephone"); // устанавливаем какие поля нам нужно получить из AD // устанавливаем соединение с ldap сервером $ldap_con = ldap_connect($cfg->ldap) or die("Could not connect to LDAP server."); echo "-Соеденяюсь с LDAP сервером: OK</br>"; // Устанавливаем флажки протокола ldap_set_option($ldap_con, LDAP_OPT_PROTOCOL_VERSION, 3); // AD Windows 2003 и выше ldap_set_option($ldap_con, LDAP_OPT_REFERRALS, 0); //Определяет, следовать ли автоматически рефералам, возвращенным сервером LDAP. Зачем нужно - не понятно // авторизуемся в AD $dn="$cfg->domain1\\$ldap_user"; $ldapbind = ldap_bind($ldap_con, $dn, $ldap_pass) or die("LDAP bind failed..."); echo "-Авторизуюсь на LDAP сервере: OK</br>"; // Пытаемся чтото получить из AD $base_dn = "DC=$cfg->domain1, DC=$cfg->domain2"; $search=ldap_search($ldap_con, $base_dn, $filter,$attr); // Ищем эти поля, получаем ссылку на результат $number_returned = ldap_count_entries($ldap_con,$search); // Получаем количество записей echo "-Получаю записи из AD: $number_returned</br>"; $info = ldap_get_entries($ldap_con, $search); // получаем результат в переменную $info // дальше парсим полученный массив // Результирующий массив с пользователями из AD // "displayname","useruid2","title","telephonenumber","department","mail","jpegphoto","homephone" for ($i=0; $i<$info["count"]; $i++) { $res=$info[$i]; $m_name=$res["displayname"]; echo "Имя: $m_name[0]</br>"; $m_tab=$res["useruid2"]; echo "Табельный: $m_tab[0]</br>"; $m_title=$res["title"]; echo "Должность: $m_title[0]</br>"; $m_tel=$res["telephonenumber"]; echo "Телефон: $m_tel[0]</br>"; $m_dep=$res["department"]; echo "Департамент: $m_dep[0]</br>"; $m_mail=$res["mail"]; echo "Email: $m_mail[0]</br>"; $m_photo=$res["jpegphoto"]; $m_hometel=$res["homephone"]; echo "Дом.тел: $m_hometel[0]</br>"; file_put_contents('img.jpg',$m_photo[0]); echo "<img src='img.jpg'>"; echo "<hr>"; }; |