Страница 1 из 1

LDAP - продвинутые ACL ?

Добавлено: 2008-07-17 15:18:54
raba
Как реализовать нижеуказаные acl с помощью regex?
access to dn.subtree="ou=dom3,dc=system,dc=ru"
by dn.one="ou=admin,ou=dom3,dc=system,dc=ru" write
by dn.children="ou=dom3,dc=system,dc=ru" read
by self read
by anonymous auth
by * none
Прошу не указывать на http://www.openldap.org/doc/admin24/access-control.html , перечитал ее 10 раз но что-то не доходить до меня и не получается.
Суть в том чтобы все которые находится в ou=dom3,dc=system,dc=ru могли читать только в свое дерево, дальше никуда, а все в ou=admin,ou=dom3,dc=system,dc=ru могли писать в тоже самое дерево. Все ето работает но как-то некрасиво и не грамотно звучить не переписывать его с regexы,..а если 50 поддерев, мне каждому отдельно прописывать?!

При такови acl:
access to dn.base="dc=ru"
by dn.children="ou=system,dc=ru" read
by * none

access to dn.base="dc=system,dc=ru"
by dn.children="dc=system,dc=ru" read
by * none

access to dn.regex="ou=([^,]+),dc=system,dc=ru$"
by dn.regex="(.+,)?$1,dc=system,dc=ru$$" read
by * none

access to dn.regex="(.+,)?ou=([^,]+),dc=system,dc=ru$"
by dn.regex="(.+,)?$1,dc=system,dc=ru$$" read
by dn.regex="^cn=([^,]+),ou=admin,$1,dc=system,dc=ru$$" write
by * none
логи такие:
Jul 17 14:52:18 ps3 slapd[1076]: => access_allowed: auth access to "cn=admin1,ou=admin,ou=dom3,dc=system,dc=ru" "userPassword" requested
Jul 17 14:52:18 ps3 slapd[1076]: => dn: [1] dc=ru
Jul 17 14:52:18 ps3 slapd[1076]: => dn: [2] dc=system,dc=ru
Jul 17 14:52:18 ps3 slapd[1076]: => dnpat: [3] ou=([^,]+),dc=system,dc=ru$ nsub: 1
Jul 17 14:52:18 ps3 slapd[1076]: => acl_get: [3] matched
Jul 17 14:52:18 ps3 slapd[1076]: => acl_get: [3] attr userPassword
Jul 17 14:52:18 ps3 slapd[1076]: => match[0]: 20 50
Jul 17 14:52:18 ps3 slapd[1076]: o
Jul 17 14:52:18 ps3 slapd[1076]: u
Jul 17 14:52:18 ps3 slapd[1076]: =
Jul 17 14:52:18 ps3 slapd[1076]: d
Jul 17 14:52:18 ps3 slapd[1076]: o
Jul 17 14:52:18 ps3 slapd[1076]: m
Jul 17 14:52:18 ps3 slapd[1076]: 3
Jul 17 14:52:18 ps3 slapd[1076]: ,
Jul 17 14:52:18 ps3 slapd[1076]: d
Jul 17 14:52:18 ps3 slapd[1076]: c
Jul 17 14:52:18 ps3 slapd[1076]: =
Jul 17 14:52:18 ps3 slapd[1076]: s
Jul 17 14:52:18 ps3 slapd[1076]: y
Jul 17 14:52:18 ps3 slapd[1076]: s
Jul 17 14:52:18 ps3 slapd[1076]: t
Jul 17 14:52:18 ps3 slapd[1076]: e
Jul 17 14:52:18 ps3 slapd[1076]: m
Jul 17 14:52:18 ps3 slapd[1076]: ,
Jul 17 14:52:18 ps3 slapd[1076]: d
Jul 17 14:52:18 ps3 slapd[1076]: c
Jul 17 14:52:18 ps3 slapd[1076]: =
Jul 17 14:52:18 ps3 slapd[1076]: r
Jul 17 14:52:18 ps3 slapd[1076]: u
Jul 17 14:52:18 ps3 slapd[1076]: => match[1]: 23 31
Jul 17 14:52:18 ps3 slapd[1076]: d
Jul 17 14:52:18 ps3 slapd[1076]: o
Jul 17 14:52:18 ps3 slapd[1076]: m
Jul 17 14:52:18 ps3 slapd[1076]: 3
Jul 17 14:52:18 ps3 slapd[1076]: => slap_access_allowed: result not in cache (userPassword)
Jul 17 14:52:18 ps3 slapd[1076]: => acl_mask: access to entry "cn=admin1,ou=admin,ou=dom3,dc=system,dc=ru", attr "userPassword" requested
Jul 17 14:52:18 ps3 slapd[1076]: => acl_mask: to value by "", (=0)
Jul 17 14:52:18 ps3 slapd[1076]: <= check a_dn_pat: (.+,)?$1,dc=system,dc=ru$$
Jul 17 14:52:18 ps3 slapd[1076]: <= check a_dn_pat: *
Jul 17 14:52:18 ps3 slapd[1076]: <= acl_mask: [2] applying none(=0) (stop)
Jul 17 14:52:18 ps3 slapd[1076]: <= acl_mask: [2] mask: none(=0)
Jul 17 14:52:18 ps3 slapd[1076]: => slap_access_allowed: auth access denied by none(=0)
Jul 17 14:52:18 ps3 slapd[1076]: => access_allowed: no more rules

Re: LDAP - продвинутые ACL ?

Добавлено: 2008-10-29 23:44:10
Alex Keda
это надо на бамажке рисовать и думать.
так, слёту, пожалуй нифига и не придумаешь....

Re: LDAP - продвинутые ACL ?

Добавлено: 2008-10-30 10:20:05
raba
Д'нет ребят! Спасибо за помощ, ето было давно и я уже вполне не плохо справился с данной задачей!
Могу поделится опытом - при возможность НЕ ставте regex'ы, они слишком затормаживають поиск когда база солидная. Я организовал acl от первой до последней строчке на regex'ы, но при обработке запросов проверка юзера при получение/отправка почты, поиск прямо скажем "sendmail не спешить искать", за то чудненко было добился все чего хотел(правила->все запрещающее кроме указаных)