PHP не может найти ничего в LDAP (в то время как python может) - PullRequest
0 голосов
/ 09 января 2020

Помогите мне, пожалуйста. У меня есть некоторые проблемы с моим php кодом при попытке поиска пользователя в ldap. На той же виртуальной машине я без проблем выполняю код python, поиск пользователя завершается успешно. Очевидно, это не проблемы с сетевым подключением. Фильтр LDAP одинаков в php и в python коде.

Также я заметил, что когда я смотрю на вывод tcpdump, выполненный в то же время, что и мой код php, я вижу, что количество пакетов намного меньше, чем когда я выполняю tcpdump параллельно с python код (7 пакетов при выполнении php против 729 пакетов при выполнении python кода)

php код :

<?php
$ldapConnectionId = ldap_connect("domain.controller.example");
$LDAP_USER='domain\username';
$LDAP_PSWD='userpass';
$ldaptree = 'DC=X,DC=X,DC=X';
ldap_set_option($ldapConnectionId, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapConnectionId, LDAP_OPT_REFERRALS, false);

$bnd = ldap_bind($ldapConnectionId, $LDAP_USER, $LDAP_PSWD);
$filter='(&(objectClass=user)(objectCategory=person))';
$ldapSearchResults = ldap_search($ldapConnectionId, $ldaptree, $filter);
$ldapEntries = ldap_get_entries($ldapConnectionId, $ldapSearchResults);
echo $ldapEntries["count"]." entries found\n";
ldap_close($ldapConnectionId);
?>

python код , который правильно работает на той же виртуальной машине:

AD_SERVER='domain.controller.example'
AD_USER='domain\username'
AD_PASS='userpass'
server=Server(AD_SERVER,get_info=ALL)
conn = Connection(server,user=AD_USER,password=AD_PASS, auto_bind=True)
conn.start_tls()
conn.search(search_base='dc=X,dc=X,dc=X',
search_filter='(&(objectClass=user)(objectCategory=person))',
attributes=['distinguishedName'])

После выполнения этого кода (php7 .3 в качестве интерпретатора) я получаю «0 записей найдено» В чем может быть проблема ?

Спасибо!

...