Active Directory — получить атрибуты AD членов группы, используя PHP LDAP

Я использую PHP для запроса Active Directory. Мне нужно получить несколько атрибутов (офисный телефон и электронная почта) всех членов указанной группы.

Я могу получить полный CN пользователей в группе, например:

        $results = ldap_search($ds,$ldapbase, "cn=" . $group);
$entries = ldap_get_entries($ds, $results);
$members = $entries[0]['member'];

for ($i=0; $i< count($members) -1; $i++) {

$mem = $members[$i];

if($mem != "") {

$groupMembers[] = $mem;
}
}

даст мне массив членов группы, как это:

 CN=Testlastname1\, Testfirstname1,OU=Personnel,OU=All Staff,DC=domain,DC=domainsuffix
CN=Testlastname2\, Testfirstname2,OU=All Staff,DC=domain,DC=domainsuffix
etc...

Мой вопрос, как я могу взять эти результаты и запросить атрибуты, которые мне нужны, а именно офисный телефон и адрес электронной почты для каждого? Или я совсем не прав?

Я видел некоторые вещи, близкие к этому, и некоторые (несколько византийские) примеры, которые я не могу заставить работать. Я играл с различным синтаксисом фильтра безрезультатно. Должен быть способ извлечь отдельные результаты из успешного группового запроса, извлечь объект AD, описанный результатом, и извлечь требуемые свойства, но я пока не нашел его.

Любая помощь с благодарностью.

КСТАТИ — PHP версии 5.5.7 с использованием FastCGI на Windows 2008R2, IIS7.5

0

Решение

Следующее должно работать как-то:

foreach ($groupsmembers as $groupmember) {
$result = ldap_search($ds,$groupmember, '*', 'officephone,mail');
$entries = ldap_get_entries($ds, $results);
$users[$groupmember]['officephone'] = $entries[0]['officephone'][0];
$users[$groupmember]['mail'] = $entries[0]['mail'][0];
}

Главное, что вы используете извлеченный DN (который CN=Testlastname1\, Testfirstname1,OU=Personnel,OU=All Staff,DC=domai....) в качестве базы поиска, а затем извлеките из нее атрибуты электронной почты и офисного телефона.

На (Linux) -Commandline это будет выглядеть так:

ldapsearch -h ldap-server -b "CN=Testlastname1, Testfirstname1,OU=Personnel,OU=All Staff,DC=domain,DC=domainsuffix" * mail,officephone

надеюсь, это поможет

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]