管理 ldap 中的特殊角色
Posted
技术标签:
【中文标题】管理 ldap 中的特殊角色【英文标题】:Manage special roles in ldap 【发布时间】:2011-04-09 03:14:42 【问题描述】:我有一个配置了 spring 安全性的网络应用程序,它从 ldap 树中获取用户和角色。
我有一个用于用户的 dn ou=User,dc=application 和用于角色的 ou=Groups,dc=application 。
每个角色都是第二个子树中的一个条目,并且通过角色条目中的属性成员进行关联。
实际上我有 5 种不同的角色访问权限(ROLE_A、ROLE_B、ROLE_C、ROLE_D、ROLE_E):每个角色都授予对特定 URL 的访问权限。每个角色都是独立的。
角色子树架构(非常简单且不完整)
ou=组,dc=应用程序。 --cn=A --cn=B --cn=C --cn=D --cn=E
现在我必须满足插入 3 个新角色(ROLE_F、ROLE_G、ROLE_H)的请求,这些角色可以按照固定模式分配: - ROLE_F 只能在用户具有 ROLE_B、ROLE_D、 - 只有当用户处于角色 ROLE_C 或 ROLE_E 时才能分配 ROLE_G - ROLE_H 只能在用户处于角色 ROLE_A 或 ROLE_B 时分配
管理这 3 个新角色的最佳做法是什么?我应该将它们视为应用程序中的独立和托管依赖项还是其他什么?
谢谢
【问题讨论】:
【参考方案1】:是否有任何理由需要将新角色作为单独的项目进行管理,无论是现在还是将来的某一天,例如ROLE_F授予的权限不会100%适用于ROLE_B人吗?如果是这样,那么我会说它们应该分开管理,即使您只是怀疑有一天它们可能需要分开……毕竟,您现在还不如多花点力气,以免将来麻烦。
但如果您真正需要做的只是向现有组(本例中为 ROLE_B)添加新权限(例如,由 ROLE_F 授予的权限),则不需要新角色。
【讨论】:
ROLE_F(如 ROLE_G 和 ROLE_H)包含特殊操作权限(管理功能),因此它们不会适用于 100% 的 ROLE_B 人。另一个具体情况是,仅当用户具有 ROLE_B 或 ROLE_D 时,才会分配(或不分配)特定的 role_f。我的另一个问题是如何在我的 ldap 服务器中实现这个场景。 很遗憾,这些新角色添加的这些新权限无法关联到现有组,否则我将这些关联到实际组。以上是关于管理 ldap 中的特殊角色的主要内容,如果未能解决你的问题,请参考以下文章