【发布时间】:2018-01-28 03:58:35
【问题描述】:
我们需要修改现有应用程序的 RBAC 模型以引入 Teams 的概念。目前,我们可以选择基于权限集创建新角色并将多个角色分配给用户。团队的想法是根据角色建立层次结构。假设我们有四个角色:
- 投资者
- 经理
- 团队负责人
- 工程师
一个团队可以拥有来自所有这些角色的任意数量的用户。所以可以有 2 名投资者、4 名经理、2 名团队负责人和 6 名工程师。我们必须根据团队中的角色来运行我们的业务逻辑。
据我了解,这需要我们固定角色的数量,因为如果我们不知道用户正在创建哪种角色,那么我们就无法在团队中运行我们想要的业务逻辑。但是,我觉得限制角色并基于角色应用授权检查并不是一个好方法。在这种情况下有什么更好的方法?
【问题讨论】:
-
您的应用程序会考虑哪些因素 - 角色、权限或团队?
-
它考虑了权限。如果我们允许自定义角色,那么用户将能够设置与团队角色相矛盾的随机权限。要么我必须添加“CanBeManager”或“CanLeadTeam”等权限,然后进行基于权限的检查,或者使用唯一受限的默认角色。
标签: architecture permissions rbac