LDAP递归从组中获取用户

时间:2019-06-06 10:30:22

标签: php symfony ldap

你好,

在LDAP中具有此结构:

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

我需要一个PHP函数,它将为我提供一组传递的用户组(仅用户)。例如:

$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 :(得分:0)

我发现了错误。我们的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);