访问(读取)openldap中的操作属性需要哪些用户权限

访问(读取)openldap中的操作属性需要哪些用户权限

我目前正在配置 openldap 服务器。为了定义用户权限,我使用 ldif 文件。为了检查权限并查看一切是否按预期运行,我使用 Apache Directory Studio。

用户权限的一个要求是,用户可以读取自己的条目,本地管理员可以读取其分支中的所有用户条目,而“全局”管理员可以读取所有用户条目。到目前为止一切正常。

另外,我需要知道用户属于哪个组。为此,我想使用memberOfopenldap 支持的操作属性。不幸的是,只有“全局”管理员才能看到操作属性。如果我尝试使用本地管理员或简单用户在 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其自己条目的属性?

答案1

看来我的尝试太复杂了。对所有事物都使用通用访问规则self似乎可以按预期工作:

olcAccess: to * 
     by self read

根据该规则,每个用户都可以阅读与自己的条目相关的所有内容(而不仅仅是自己的条目本身),包括操作属性。

相关内容