跳转至

合适的权限模型

RBAC 和 ABAC

目前被大家广泛采用的两种权限模型为:

  • 基于角色的访问控制(RBAC)
  • 基于属性的访问控制(ABAC)

二者各有优劣:

  • RBAC 模型构建起来更加简单,缺点在于无法做到对资源细粒度地授权(都是授权某一类资源而不是授权某一个具体的资源);
  • ABAC 模型构建相对比较复杂,学习成本比较高,优点在于细粒度和根据上下文动态执行。

如何选择

在这里,组织的规模是至关重要的因素。由于 ABAC 最初的设计和实施困难,对于小型企业而言,考虑起来可能太复杂了。

对于中小型企业,RBAC 是 ABAC 的简单替代方案。每个用户都有一个唯一的角色,并具有相应的权限和限制。当用户转移到新角色时,其权限将更改为新职位的权限。这意味着,在明确定义角色的层次结构中,可以轻松管理少量内部和外部用户。

但是,当必须手动建立新角色时,对于大型组织而言,效率不高。一旦定义了属性和规则,当用户和利益相关者众多时,ABAC 的策略就更容易应用,同时还降低了安全风险。

简而言之,如果满足以下条件,请选择 ABAC:

  • 在一个拥有许多用户的大型组织中;
  • 需要深入的特定访问控制功能;
  • 有时间投资远距离的模型;
  • 需要确保隐私和安全合规;

但是,如果满足以下条件,请考虑 RBAC:

  • 所在的是中小型企业;
  • 访问控制策略广泛;
  • 外部用户很少,并且组织角色得到了明确定义;