我正在尝试制定一个 RBAC 权限模型,该模型允许将权限与应用这些权限的范围分开。我一直无法找到描述这一点的标准模型。
这是一个例子:
- 权限由对资源的操作组成:
- (查看)(运营报告)
- (创建)(运营报告)
- (管理)(发布)
- 角色是权限的集合:
- A(产品经理)可以(管理发布)和(查看运营报告)
- A(运营经理)可以(创建运营报告)和(查看运营报告)
- 可以为用户分配角色:
(Alice) 和 (Bob) 是 (产品经理)
到目前为止,这是标准的 RBAC-0。现在让我们添加另一个正交层:
- (Alice)是“酷新产品(CNP)”的(产品经理)
- (Bob)是“旗舰产品(FSP)”的(产品经理)
- (查理)是(产品经理)...
- ...
这似乎是一个相当常见的用例。
在一个简单的实现中,我们可以为每个产品复制角色和权限。所以而不是:
- (产品经理)
- (管理)(发布)
- (查看)(运营报告)
我们现在有:
- ( CNP产品经理)
- (管理)(CNP发布)
- (查看)(CNP行动报告)
- (全汉产品经理)
- (管理)(FSP发布)
- (查看)(FSP运营报告)
- ...
- ...
这很快就会失控。我如何对这种情况进行建模以避免指数重复?