LDAP Получить пользователей из группы рекурсивно - PullRequest
0 голосов
/ 06 июня 2019

Helo,

Имея такую ​​структуру в LDAP:

- Group1
    - User1
    - User2
- Group2
    - Group1
- Group3
    - Group2

Мне нужна функция PHP, которая даст мне массив Users (только пользователи) переданной группы.Например:

$array_users = getLdapGroupUsers (Group3)

Результат должен быть:

$array_users = ['User1','User2']

Любая помощь?

Я пытался с этим, но нет никакого результата:

$ldap = ldap_connect($ip) or die('Could not connect to LDAP');
ldap_bind($ldap, $basedn, $passwd) or die('Could not bind to LDAP');
$gFilter = '(&(objectClass=group)(member:1.2.840.113556.1.4.1941:=Group3,CN=Users,DC=domain,DC=net))';
$gAttr = array('cn');
$result = ldap_search($ldap, $basedn, $gFilter, $gAttr) or exit('Unable to search LDAP server');

1 Ответ

0 голосов
/ 06 июня 2019

Я нашел ошибку.Наш сервер LDAP - это Samba 4.1.17, и у него нет функции рекурсивности.Я подключился к другому серверу (Samba 4.7.6), у которого есть эта функция, и он прекрасно работает так:

$ldap = ldap_connect($ip) or die('Could not connect to LDAP');
ldap_bind($ldap, $dn, $passwd) or die('Could not bind to LDAP');
$gFilter = '(&(objectClass=posixAccount)(memberOf:1.2.840.113556.1.4.1941:=CN=Group3,CN=Users,DC=domain,DC=net))';
$gAttr = array('cn');
$result = ldap_search($ldap, $basedn, $gFilter, $gAttr) or exit('Unable to search LDAP server');
$users = ldap_get_entries($ldap, $result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...