建议使用哪些最佳实践或访问控制模型来实施细粒度访问控制

What best practices or access control models are recommended for implementing fine-grained access control

我们目前正在构建一个具有多个用户角色的网络应用程序。每个用户都分配有一个或多个角色,这授予他们与 web 应用程序的特定部分(REST 资源)交互的权限。例如,允许角色为 admin 的用户对资源 user.

执行 create 操作

我们已经使用 RBAC 和 Casbin 实现了这种访问控制。到目前为止,这已经满足了我们的访问控制需求。我们已经到了必须实施某种机制的地步,该机制使我们的 webapp 用户能够授予其他用户访问特定数据对象(例如他们的地址)的权限。在某些情况下,这些其他用户也需要能够改变这些数据。

我感觉 RBAC 不适用于这种级别的细粒度访问控制。因此,我正在寻找适合此用例的最佳 practices/alternative 访问控制模型。

我阅读了 ABAC ,但仍有以下 2 个问题:

  1. ABAC 是否仍然是推荐模型,或者还有其他我应该了解的模型吗?
  2. 如果我最终使用 ABAC,将其与 RBAC 结合的最佳方式是什么?

非常感谢任何回复。

我是 Casbin 的作者。最近,Casbin 添加了对缩放 ABAC 规则的支持:https://casbin.org/docs/en/abac#scaling-the-model-for-complex-and-large-number-of-abac-rules。现在您可以在 Casbin 中编写非常强大的 ABAC 规则。您也可以在 Casbin 中混合使用 RBAC 和 ABAC。