Предполагая, что у меня есть 2 группы со следующей структурой:
dn: ou=IT,dc=domain,dc=com
ou: IT
objectClass: top
objectClass: organizationalUnit
dn: cn=bob,ou=IT,dc=domain,dc=com
cn: bob
sn: Bob
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
userPassword:: xx
...
dn: ou=HR,dc=domain,dc=com
ou: HR
objectClass: top
objectClass: organizationalUnit
dn: cn=alice,ou=HR,dc=domain,dc=com
cn: alice
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
userPassword:: xx
...
Вы можете перечислить всех пользователей в ИТ или в отделе кадров, выполнив:
$ ldapsearch -W -x -D "cn=binder,dc=domain,dc=com" \
'(&(|(ou:dn:=IT)(ou:dn:=HR))(cn=*))'
Итак, вы должны попробовать с ldapsearch
сначала из командной строки:
$ ldapsearch -W -x -D "cn=binder,ou=Users,ou=Directory,o=IC" \
'(&(|(ou:dn:=Managers)(ou:dn:=Employees)(ou:dn:=Misc))(cn=*))'
Если он работает, отредактируйте файл конфигурации mod_authz_ldap
, как показано ниже:
Require ldap-filter &(|(ou:dn:=Managers)(ou:dn:=Employees)(ou:dn:=Misc))(cn=*)