Я пытаюсь максимально автоматизировать контроль доступа для записи в группы, насколько я хочу, чтобы LDAP мог определять, кто может писать, на основе других атрибутов.
Я смог успешно сделать это, если мне нужно было предоставить доступ только одному или нескольким лицам, указав их DN в качестве значения атрибута, а затем используя этот ACL:
add: olcAccess olcAccess: {2} to dn.sub = "ou = groups, dc = example, dc = com" от dnattr = "owner" запись пользователями, прочитанными пользователями * none
Это действительно хорошо работает - я просто добавляю к объекту атрибут владельца, указываю DN владельца, и они могут затем писать в объект.
Однако для более масштабных разрешений мне нужно иметь возможность использовать членство в группе. Теперь я прочитал http://www.openldap.org/faq/data/cache/52.html и видно, что вы можете указать: доступ к группе // = Однако для этого мне потребуется явно установить DN группы в самом элементе управления доступом.
Я хочу / должен иметь возможность, чтобы LDAP прочитал DN группы, у которой есть разрешение, точно так же, как это делается с dnattr. Я думал, что что-то читал о том, что это возможно с наборами, но slapd.access говорит, что «Оператор set = еще не документирован». поэтому я не понимаю, является ли это наиболее подходящим способом продолжения.
Может кто-нибудь посоветовать, как это можно сделать?
Спасибо.
Филип
Вот ответ на это.
У группы есть атрибут, называемый владельцем. Этим атрибутом может быть DN отдельного лица или группы, если членство в группе использует атрибут с именем uniqueMember, и который это DN физического лица.
Правило доступа:
access to dn.sub="ou=groups,dc=example,dc=com"
by dnattr="owner" write
by set="this/owner/uniqueMember & user" write
by * none