Вложенный поиск LDAP по атрибуту

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

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

<?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 '</pre>';

foreach ($directreports as $key => $value)
{
        $directreports = substr($value, 0, strpos($value, ","));
        $directreports = strstr($directreports, '=');
        $directreports = str_replace('=', '', $directreports);
        $directreports1 = aduserlookup('\'' . $directreports . '\'');
        echo $directreports1 . "<br>";
}
?>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
660
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

это подход снизу вверх. То, что я пытаюсь сделать, это сверху вниз. По сути, у меня нет списка пользователей под менеджером. Я хочу получить этот список. Узнайте, кто отчитывается перед ними, и да, я использую Microsoft AD.

yusof 26.06.2019 20:00

«У меня нет списка пользователей под менеджером. Я хочу получить этот список». И это то, что выше покажет. Список пользователей, подчиняющихся менеджеру. (CN=manager,OU=users,DC=willeke,DC=com) Как показано в запросе

jwilleke 26.06.2019 22:42

МОЙ БОГ. Это круто. Так что нет необходимости зацикливаться или что-то еще. Все это делается из запроса AD.

yusof 26.06.2019 23:18

Другие вопросы по теме