你好,
在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');
答案 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);