域内RBAC

域租户的角色定义

在Casbin中的RBAC角色可以是全局或是基于特定于域的。 特定域的角色意味着当用户处于不同的域/租户群体时,用户所表现的角色也不尽相同。 这对于像云服务这样的大型系统非常有用,因为用户通常分属于不同的租户群体。

域/租户的角色定义应该类似于:

[role_definition]
g = _, _, _

第三个 _ 表示域/租户的名称, 此部分不应更改。 然后,政策可以是:

p, admin, tenant1, data1, read
p, admin, tenant2, data2, read

g, alice, admin, tenant1
g, alice, user, tenant2

该实例表示tenant1的域内角色admin 可以读取data1, alice在tenant1域中具有admin角色,但在tenant2域中具有user角色, 所以alice可以有读取data1的权限。 同理,因为alice不是tenant2的admin,所以她访问不了data2。

接下来在matcher中,应该像下面的例子一样检查角色信息:

[matchers]
m = g(r.sub, p.sub, r.dom) && r.dom == p.dom && r.obj == p.obj && r.act == p.act

更多示例参见: rbac_with_domains_model.conf

最后编辑: kuteng  文档更新时间: 2021-06-22 19:03   作者:kuteng