1

我想为我的多台机器创建一个使用 LDAP 的身份验证系统。
我已经创建了一个基本结构,但我不确定它是否是最好的解决方案。

基地:
我有机器 M1、M2、M3、M5(其中有数据库 D1、D2 和 D3)
用户列表 U1、U2、U3、U4、U5、U6、U7、U8、U9、U10
用户类型 - reader(机器特定),writer(机器特定),Manager

要求:
每台机器都可以有读写器用户集
写入用户就像他们各自机器的管理员
读取用户的权限非常有限,并且可以从可用数据库中读取很少的数据库

使用的方法:
创建一个节点,其中包含所有用户及其密码信息的列表,还允许数据库
创建管理器角色和角色占用者列表
为每台机器创建 2 个角色(读取器,写入器),并使用各自的角色占用者
定义访问控制

现在,当用户说 U1 试图读取机器 M4 的数据库 D2 时......首先他必须在用户列表中,然后他必须是 M4 机器的角色占用或读写器角色......

我的问题出现在这里
1.要检查他是否被允许读取数据库 D2,我们必须搜索用户节点以获取数据库信息并查看它是否包含允许的 D2。

另一个问题是
2. 如果我想删除一个用户,很容易从用户节点中删除,但角色占用条目不会那么容易删除。(我必须在每个服务器的读者和作者角色中搜索以检查他是否是角色占用者)

那么有没有更好的方法来设计 DIT,所以没有。减少了管理 ldap 信息的步骤?

...以及检查数据库访问的更好方法?

4

1 回答 1

1

为每个数据库创建一个 organizationsRole 条目,并将其 roleOccupants 设置为允许使用它的用户。参照完整性覆盖将解决您有关删除用户条目(或重命名)的问题。

于 2012-11-05T01:12:53.150 回答