ldap_search возвращает пустой массив - PullRequest
0 голосов
/ 25 января 2019

Я сдаюсь: (

Использование ldapsearch в Ubuntu:

ldapsearch -x -LLL -h xx.xxxx.xx:3268 -D login -w password -b "DC=uni-xx,DC=xx" -v -s sub "userprincipalname=xx8870@student.xxx.xx"

возвращает правильную информацию для этого пользователя.

Переход на php на том же сервере:

if (($connect = ldap_connect($ldap_server, $obj->port))) {

ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, $obj->LDAP_OPT_PROTOCOL_VERSION);          

$dn = $obj->contexts; //"DC=uni-xx,DC=xx"
$bu = $obj->bind_user; //login
$bp = $obj->bind_pw; //password
$bind = ldap_bind($connect, $bu, $bp); 

if($bind){

    $is_tu_user = ldap_search($connect, $dn, "(userprincipalname=*xx8870*)", array("cn", "mail"));
    echo ldap_error($connect);
    $info = ldap_get_entries($connect, $is_tu_user);
    print_r(" sss " . json_encode($info));die();
    }
}

возвращает массив с нулевыми элементами:

{"count":0}

PHP версии 7.2. Расширение LDAP запущено и работает.

1 Ответ

0 голосов
/ 28 января 2019

Наконец-то нашли виновника: в коде PHP я указывал адрес своего сервера как "ldap: //xx.xxxx.xx" , что, я думаю, неверно.Я не использовал протокол в команде оболочки unix.

Вы должны использовать ldap_connect ("xx.xxxx.xx", 3268), без протокола , чтобы иметь возможность искать в поддеревьях od (Microsoft?) AD сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...