Назад | Перейти на главную страницу

Контроль доступа группы LDAP

Я пытаюсь настроить наш сервер LDAP, чтобы члены группы pwmadmins могли менять пароли людей для них. Чтобы быть более конкретным, у нас есть PWM для Tomcat, и мы пытаемся позволить pwmadmins изменять пароли людей через это. Но по какой-то причине люди в группе pwmadmins до сих пор не имеют разрешения на изменение паролей людей.

Вот как теперь выглядит раздел ALC файла olcDatabase = {1} hdb.ldif (я показал все это, хотя меня интересует только раздел {0}):

olcAccess: {0}to attrs=userPassword,shadowLastChange
 by dn="cn=pwmadmin,dc=cs,dc=school,dc=edu" write
 by group.exact="cn=pwmadmins,ou=groups,dc=cs,dc=school,dc=edu" write
 by anonymous auth
 by self write
 by * none
olcAccess: {1}to attrs=loginShell,gecos
 by dn="cn=admin,dc=cs,dc=school,dc=edu" write
 by self write
 by * read
olcAccess: {2}to attrs=loginShell,gecos
 by dn="cn=pwmadmin,dc=cs,dc=school,dc=edu" write
olcAccess: {3}to dn.base=""
 by * read
olcAccess: {4}to *
 by dn="cn=admin,dc=cs,dc=school,dc=edu" write
 by * read

(Для ясности добавлены новые строки.) Я проверил формат с помощью нескольких других аналогичных вопросов на этом сайте, чтобы убедиться, что у меня правильно указаны порядок, интервалы и т. Д., Но он все еще не работает. У меня установлен фильтр memberOf, и я подтвердил, что он правильно работает с PWM. И когда я дал своему UID возможность изменять пароли, он работал правильно. Так что это явно что-то с групповым синтаксисом, но я не уверен, что именно. Любая помощь высоко ценится!

РЕДАКТИРОВАТЬ: нашел решение - см. Ниже.

Мне удалось заставить его работать, превратив pwmadmins в groupOfNames вместо posixGroup, а затем реализовав следующий код:

olcAccess: {0}to attrs=userPassword,shadowLastChange
 by dn="cn=pwmadmin,dc=cs,dc=school,dc=edu" write
 by set="[cn=pwmadmins,ou=groups,dc=cs,dc=school,dc=edu]/member & user" write
 by anonymous auth
 by self write
 by * none
olcAccess: {1}to attrs=loginShell,gecos
 by dn="cn=admin,dc=cs,dc=school,dc=edu" write
 by self write
 by * read
olcAccess: {2}to attrs=loginShell,gecos
 by dn="cn=pwmadmin,dc=cs,dc=school,dc=edu" write
olcAccess: {3}to dn.base=""
 by * read
olcAccess: {4}to *
 by dn="cn=admin,dc=cs,dc=school,dc=edu" write
 by * read