LDAP 389ds 与用户权限 ACI 和 Apache DS

问题描述

我是 LDAP 的新手,一直在努力解决 389ds 中的用户权限问题。我在使用 389-ds-base.x86_64 1.4.3.22-1 的 RHEL8 实例上,从我在互联网上可以找到的内容来看,无法使用 RHEL 8 获得工作管理控制台,所以我开始搞乱访问控制说明(ACI)。

我的目标是创建一个具有比较搜索读写添加删除功能用户以及另一个具有读取搜索和比较功能用户,然后删除匿名读取搜索和比较功能

使用 Apache DS 中的 CN=Directory Manager 帐户,我可以完美地浏览我的目录 Picture of working directory search with CN=Directory Manager。当我使用另一个用户帐户 testuser 连接到 LDAP 服务器时,会发生此问题。使用 testuser 帐户,我只能看到 Root DSE 文件夹。 Picture with testuser account binded only showing Root DSE

所以我的 ACI 之旅开始了。经过大量研究和阅读,我得出了一个有趣的 ACI:

(targetattr="*")(version 3.0; aci "allow test user all access"; allow(compare,search,read,write,add,delete) userdn="ldap:///cn=testuser,o =users,c=us";)

我授予用户 testuser 访问 c=us 中所有属性的权限。 Picture showing ACI above in place on the Root DSE

而且我知道后端正在发生某些事情,因为当我添加该 ACI 时,我就能够在 DN 表中看到该 aci。例如,如果没有那个 ACL,当我以同一用户身份绑定到 ApacheDS 时,我将获得一个没有 aci 的 DN 视图

Picture showing DN without ACI's with same user bound

我的主要问题/缺乏理解来自 ACI 的工作方式。我可以告诉我创建的 ACI 实际上并没有提供适当的写入权限,因为如果以 testuser 帐户运行 ldapmodify 绑定,我会收到以下错误

修改条目“c=us” ldap_modify:访问不足 (50) 附加信息:条目“c=us”的“aci”属性的“写入”权限不足。

如果 testuser 拥有 c=us 下的所有权限,那么好的 aci 是什么,我应该将 aci 放置在树中的哪个位置?

在我阅读的旁注中,我看到了 ACI 和 ACL,我假设在这种情况下使用 ACI 是否正确?

这是我的第一篇 Stack Overflow 帖子,请多多关照。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)