Openldap
訪問(讀取)openldap 中的操作屬性需要哪些使用者權限
我現在正在配置一個 openldap 伺服器。為了定義使用者權限,我使用 ldif 文件。為了檢查權限並查看是否一切正常,我使用了 Apache Directory Studio。
對使用者權限的一個要求是,使用者可以讀取自己的條目,本地管理員可以讀取其分支中的所有使用者條目,並且“全域”管理員可以讀取所有使用者條目。到目前為止一切正常。
另外我需要知道使用者屬於哪些組。為此,我想使用
memberOf
openldap 支持的操作屬性。不幸的是,只有“全域”管理員才能看到操作屬性。如果我嘗試使用本地管理員或簡單使用者在 Apache Directory Studio 中獲取操作屬性,則不會顯示/獲取操作屬性。我試圖為這些使用者授予所有成員屬性的讀取權限,其中他們的 dn 使用以下規則輸入:
olcAccess: to attrs=member,entry by dnattr=member selfwrite by * break
此規則類似於 openldap 文件末尾的第 8.3.5 章。這似乎根本不起作用,所以我嘗試添加一個通用規則來訪問角色條目:
olcAccess: to dn.regex="ou=Roles,dc=([^,]+),dc=customers,dc=domain,dc=de$" attrs=entry,@groupOfNames,children by group.expand="cn=Administrators,ou=Roles,dc=$1,dc=customers,dc=domain,dc=de" write by group.expand="cn=ProductionUser,ou=Roles,dc=$1,dc=customers,dc=domain,dc=de" read by group.expand="cn=TestUser,ou=Roles,dc=$1,dc=customers,dc=domain,dc=de" read by * break
使用此規則,任何使用者都可以讀取其分支的所有角色條目。操作屬性或至少
memberOf
對使用者仍然不可見。那麼我需要授予哪些權限,以便每個使用者至少可以讀取
memberOf
其自己條目的 - 屬性?
看來我的嘗試很複雜。使用對所有內容的一般訪問規則
self
似乎可以按預期工作:olcAccess: to * by self read
使用該規則,每個使用者都可以閱讀與自己的條目(而不僅僅是自己的條目本身)相關的所有內容,包括操作屬性。