7
« : 20 Февраль 2018, 17:39:56 »
Добрый день.
Помогите пожалуйста разобраться с ACL.
При ACL приведенном ниже
access to attrs=objectClass,givenName,sn,uid,description,employeeType,telephoneNumber,mobile,homePostalAddress,homePhone,cn,displayName
by group.exact="cn=hr,ou=groups,ou=lab,dc=lab,dc=local" read
by * break
результат поиска посредством команды ldapsearch -H ldap://ldap01 -x -D "uid=jdoe,ou=users,ou=lab,dc=lab,dc=local" -W -b "ou=users,ou=lab,dc=lab,dc=local"
# search result
search: 2
result: 32 No such object
Если в ACL список атрибутов заменить на *,
access to *
by group.exact="cn=hr,ou=groups,ou=lab,dc=lab,dc=local" read
by * break
то поиск выполняется корректно.
Пользователь от имени которого выполняется запрос является членом группы "hr".
К сожалению, пока не могу понять что я делаю не так.
Заранее спасибо за ответы.
Update:
В логе slapd при попытке выполнить запрос присутствует следующая информация:
access_allowed: search access to "ou=users,ou=lab,dc=lab,dc=local" "entry" requested
acl_get: [3] attr entry
acl_mask: access to entry "ou=users,ou=lab,dc=lab,dc=local", attr "entry" requested
acl_mask: to all values by "uid=jdoe,ou=users,ou=lab,dc=legolab,dc=local", (=0)
check a_group_pat: cn=itstaff,ou=groups,ou=lab,dc=lab,dc=local
bdb_entry_get: found entry: "cn=itstaff,ou=groups,ou=lab,dc=lab,dc=local"
check a_group_pat: cn=helpdesk,ou=groups,ou=lab,dc=lab,dc=local
bdb_entry_get: found entry: "cn=helpdesk,ou=groups,ou=lab,dc=lab,dc=local"
acl_mask: no more <who> clauses, returning =0 (stop)
slap_access_allowed: search access denied by =0
access_allowed: no more rules
conn=1003 op=1 SEARCH RESULT tag=101 err=32 nentries=0 text=
daemon: activity on 1 descriptor
daemon: activity on:
Складывается впечатление, что сервис slapd не обращается к группе "hr" (нет записи check a_group_pat для данной группы).
Группа точно создана, и членство в группе определено.
ldapsearch -H ldap://ldap01 -x -D "cn=rootuser,dc=lab,dc=local" -W -b "ou=groups,ou=lab,dc=lab,dc=local" "cn=hr"
# extended LDIF
#
# LDAPv3
# base <ou=groups,ou=lab,dc=lab,dc=local> with scope subtree
# filter: cn=hr
# requesting: ALL
#
# hr, groups, lab, lab.local
dn: cn=hr,ou=groups,ou=lab,dc=lab,dc=local
objectClass: groupOfNames
member: uid=jdoe,ou=users,ou=lab,dc=lab,dc=local
description: Group of HR deparmtnt members
cn: hr