Вложенный поиск LDAP для атрибута - PullRequest
0 голосов
/ 26 июня 2019

На сервере AD у нас есть атрибут под названием directreports.Я хочу иметь возможность идти сверху вниз в цепочке.Генеральный директор его прямые отчеты A, B, C.Поскольку прямые отчеты - это D, E, F, в то время как прямой отчет Bs - это G, H, I.Тогда прямые отчеты D - это X, Y, Z и т. Д. До конца.

Я смотрел на это как на вложенную группу, но это не так.Я заблудился, как решать все это вместе.Я пытаюсь сделать это на PHP.Мой php-код сейчас просто ищет пользователя и дает мне прямые отчеты.

<code><?php

function aduserlookup ($UserName)
{
    include_once 'config.php';
    $ldapconn = ldap_connect("ldap://<IP>:389") or die("Could not connect to the ldap server");

    if($ldapconn) {
        $r = @ldap_bind($ldapconn, $ldapuser."@test.com", $ldappass);
        $sr=ldap_search($ldapconn, "OU=Employees,OU=Users,DC=test,DC=com", 
"cn=" . $UserName);  
        $info = ldap_get_entries($ldapconn, $sr);
        ldap_close($ldapconn);
        return $info;
    } else {
            echo "<h4>Unable to connect to LDAP server</h4>";
    }
}

$user = aduserlookup('test');
$directreports = $user[0]['directreports'];
echo '<pre>';
var_dump($directreports);
echo '
';foreach ($ directreports as $ key => $ value) {$ directreports = substr ($ value, 0, strpos ($ value, ","));$ directreports = strstr ($ directreports, '=');$ directreports = str_replace ('=', '', $ directreports);$ directreports1 = aduserlookup ('\' '. $ directreports.' \ '');echo $ directreports1."
";}?>

1 Ответ

1 голос
/ 26 июня 2019

Если вы используете Microsoft Active Directory и, если я понял, что вы ищете, вы можете Запросить всех пользователей, которые отчитываются перед начальником отдела или их подчиненным , используя этот запрос

(manager:1.2.840.113556.1.4.1941:=CN=manager,OU=users,DC=willeke,DC=com)

DirectReports - это сформированный сервером список пользователей, которые напрямую отчитываются перед «менеджером».Пользователи, которые указаны в качестве отчетов, - это пользователи, для которых свойство менеджера свойств установлено для этого пользователя.Каждый элемент в списке является связанным атрибутом с объектом, который представляет пользователя.

...