我正在研究 LDAP 和 Java 中基于角色的安全实现。具体来说,我需要在 LDAP 中表示以下对象:
- 用户
- 企业用户组 - 人力资源、财务等。
- 权限 - DOCUMENT_READ、DOCUMENT_MODIFY 等。
- 角色 - 管理员、访客等。
角色基本上是权限组,可以分配给一个用户或一组用户。
我正在考虑在 LDAP 中将它们表示为如下所示:
- 用户 - 具有 userPassword 属性的 Person 和 uidObject 类。
- 用户组 - 用户所在的组织单元类。
- 角色 - groupOfNames 对象类。
- 权限 - 不确定这个,也许还有 groupOfNames 类。
这个想法是让用户或组快速访问该用户或组拥有的角色列表。我知道我可以将用户和组放在角色的“成员”属性中,但是我必须扫描所有角色以查找列出了该用户的角色。有没有办法在 Person 对象中拥有类似“member”属性的东西?
一般来说,有人知道 LDAP 中基于角色的良好安全实现吗?我找不到关于这个主题的好的文档或教程。我目前使用 ApacheDS 作为 LDAP 服务器,但我愿意接受建议。