我们目前正在构建一个webapp,它有几个用户角色。每个用户都被分配了一个或多个角色,这些角色授予他们与webapp的特定部分(REST资源)交互的权限。例如,一个用户的角色是 admin
允许进行 create
对资源采取的行动 user
.
我们已经使用RBAC实现了这种访问控制,并带有 卡宾. 到目前为止,这已经满足了我们的访问控制需求。我们已经到了必须实现某种机制的地步,这使得我们的webapp的用户能够授予其他用户对特定数据对象(例如他们的地址)的访问权。在某些情况下,这些其他用户还需要能够突变这些数据。
我感觉RBAC并不适合这种级别的细粒度访问控制。因此,我正在寻找适合这种用例的最佳实践替代访问控制模型。
我读到过ABAC 在这个答案中但仍有以下2个问题。
我非常感谢任何回复。
我是Casbin作者。最近,Casbin增加了对ABAC规则的扩展支持。https:/casbin.orgdocsenabac#scaling-the-model-for-complex and-large-number-abac-rules。. 现在您可以在Casbin中编写非常强大的ABAC规则。您也可以在Casbin内将RBAC和ABAC混合在一起。