ldapsearch на dn работает, но не с php - PullRequest
3 голосов
/ 10 марта 2020

Я работаю с поставщиком услуг, который управляет хостингом виртуального сервера и настройкой сервера LDAP.

Моя задача - создать приложение PHP, которое использует LDAP для создания пользователя при входе в систему (для простоты).

После многих акций у поставщика услуг я наконец-то могу связаться с сервером LDAP со следующими данными:

ldapsearch -x -LLL -h vmdc2.local -D email@local -w myPassword -b"CN=xxx,OU=APPLICATIF,OU=GROUPES,OU=UTILISATEUR,DC=enterprise,DC=local"

Это происходит из ldap-utils Linux пакет. Этот запрос возвращает хорошие результаты .


Итак, я создал простой скрипт, пытаясь использовать предыдущий DN для вывода списка пользователей в CLI, для доказательства работы в PHP.

<?php

// create connection to LDAP server
$ldapconn = ldap_connect("ldap://vmdc2.local")
    or die("Impossible to connect to the LDAP server.");

$ldapbind = ldap_bind($ldapconn, 'email@local', 'myPassword');

// check binding
if ($ldapbind) {
    echo "Successfully connected to LDAP !" . PHP_EOL;

    $dn = 'CN=xxx,OU=APPLICATIF,OU=GROUPES,OU=UTILISATEUR,DC=enterprise,DC=local';
    $sr = ldap_list($ldapconn, $dn, 'cn=*');
    if (false === $sr) {
        die('Impossible to use the dn: ' . $dn . PHP_EOL);
    }

    $info = ldap_get_entries($ldapconn, $sr);

    if ($info['count'] === 0) die('No entries :(');
    for ($i=0; $i < $info["count"]; $i++) {
        echo $info[$i]["cn"][0] . PHP_EOL;
    }
} else {
    $var = '';
    ldap_get_option($ldapconn, LDAP_OPT_ERROR_STRING, $var);

    echo "Connection to LDAP failed..." . PHP_EOL . $var . PHP_EOL;
}

Вывод скрипта No entries :(

Мои вопросы

  • Как я могу получить другой результат от PHP для того же DN?

  • Можно настроить, как сервер LDAP может отвечать, в функции, кто ему звонит?

Я впервые против LDAP, так что я заблудился: / Ваша помощь действительно приветствуется!

...