PHP-код для поиска в Windows Active Directory (через LDAP)

by itisgood

После примера PHP-код будет подключаться к локальному (или удаленному) контроллеру домена Active Directory (сервер LDAP) и возвращать весь объект с указанным OU:

  • Количество найденных объектов
  • Обычное имя
  • Необычное имя
  • Описание (если существует)
  • Основной адрес электронной почты (если существует)

Помните, что поддержка LDAP по умолчанию не установлена на PHP.

Инструкции по установке см. Здесь.

 <?php
// -------------- CHANGE VARIABLES TO SUIT YOUR ENVIRONMENT --------------
//LDAP server address
$server = "ldap://192.168.1.55";
//domain user to connect to LDAP
$user = "user.name@mydomain.local";
//user password
$psw = "password";
//FQDN path where search will be performed. OU - organizational unit / DC - domain component
$dn = "OU=Accounts,OU=My Company,DC=mydomain,DC=com";
//Search query. CN - common name (CN=* will return all objects)
$search = "CN=*";
// ------------------------------------------------------------------------
echo "<h2>php LDAP query test</h2>";
// connecting to LDAP server
$ds=ldap_connect($server);
$r=ldap_bind($ds, $user , $psw);
// performing search
$sr=ldap_search($ds, $dn, $search);
$data = ldap_get_entries($ds, $sr);
echo "Found " . $data["count"] . " entries";
for ($i=0; $i<$data["count"]; $i++) {
echo "<h4><strong>Common Name: </strong>" . $data[$i]["cn"][0] . "</h4><br />";
echo "<strong>Distinguished Name: </strong>" . $data[$i]["dn"] . "<br />";
//checking if discription exists
if (isset($data[$i]["description"][0]))
echo "<strong>Desription: </strong>" . $data[$i]["description"][0] . "<br />";
else
echo "<strong>Description not set</strong><br />";
//checking if email exists
if (isset($data[$i]["mail"][0]))
echo "<strong>Email: </strong>" . $data[$i]["mail"][0] . "<br /><hr />";
else
echo "<strong>Email not set</strong><br /><hr />";
}
// close connection
ldap_close($ds);
?>

You may also like

Leave a Comment