Я устанавливаю соединение с нашим списком пользователей / сотрудников Active Directory.Я сделал это через .NET, но не могу заставить его работать в моем приложении PHP.
Я постоянно получаю счет 0. 0. 1003 *
Я пытался использовать samaccountname и sAMaccountname в качестве фильтров, это не меняет результат.
Я успешно подключаюсь, поскольку при изменении $ ldap сервер больше не будет найден.
Я использую действительные учетные данные, как при изменении $ authUser или $ authPathпредоставить авторизованное сообщение об ошибке.
Работает ldap_bind (я предполагаю), потому что он выполняет поиск и выводит счетчик 0.
Вот мой код:
<?php
try{
$ldap = "vmc-dc.CompanyName.vmc";
$authUser = "vmc\\MyUsername";
$authPass = "MyPassword";
$baseDn = "dc=vmc-dc,dc=CompanyName,dc=com";
$filter="(&(objectClass=user)(samaccountname=*))";
$conn = ldap_connect($ldap, 389) ;
if ($conn) {
ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($conn, LDAP_OPT_REFERRALS, 0);
// binding to ldap server
$ldapbind = ldap_bind($conn, $authUser, $authPass);
// verify binding
if ($ldapbind) {
//$sr=ldap_read($conn, $baseDn, $filter);
$sr=ldap_search($conn, $baseDn, $filter);
$number_returned = ldap_count_entries($conn,$sr);
echo "Count: " . $number_returned . "<br/>";
$entry = ldap_get_entries($conn, $sr);
ldap_close($conn);
echo "value = '" . $entry[0] . "'";
} else {
echo "LDAP conn ok...";
}
}
} catch (Exception $e) {
}
?>