Ldap

LDAP 組訪問控制

  • July 31, 2015

我正在嘗試設置我們的 LDAP 伺服器,以便 pwmadmins 組的成員可以為他們更改人們的密碼。更具體地說,我們為 Tomcat 設置了 PWM,並試圖讓 pwmadmins 通過它更改人們的密碼。但是由於某種原因,pwmadmins 組中的人仍然沒有更改他人密碼的權限。

這是 olcDatabase={1}hdb.ldif 文件的 ALC 部分現在的樣子(我已經顯示了所有內容,儘管我只關心部分 {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

引用自:https://serverfault.com/questions/708886