合适的权限模型
RBAC 和 ABAC
目前被大家广泛采用的两种权限模型为:
- 基于角色的访问控制(RBAC)
- 基于属性的访问控制(ABAC)
二者各有优劣:
- RBAC 模型构建起来更加简单,缺点在于无法做到对资源细粒度地授权(都是授权某一类资源而不是授权某一个具体的资源);
- ABAC 模型构建相对比较复杂,学习成本比较高,优点在于细粒度和根据上下文动态执行。
如何选择
在这里,组织的规模是至关重要的因素。由于 ABAC 最初的设计和实施困难,对于小型企业而言,考虑起来可能太复杂了。
对于中小型企业,RBAC 是 ABAC 的简单替代方案。每个用户都有一个唯一的角色,并具有相应的权限和限制。当用户转移到新角色时,其权限将更改为新职位的权限。这意味着,在明确定义角色的层次结构中,可以轻松管理少量内部和外部用户。
但是,当必须手动建立新角色时,对于大型组织而言,效率不高。一旦定义了属性和规则,当用户和利益相关者众多时,ABAC 的策略就更容易应用,同时还降低了安全风险。
简而言之,如果满足以下条件,请选择 ABAC:
- 在一个拥有许多用户的大型组织中;
- 需要深入的特定访问控制功能;
- 有时间投资远距离的模型;
- 需要确保隐私和安全合规;
但是,如果满足以下条件,请考虑 RBAC:
- 所在的是中小型企业;
- 访问控制策略广泛;
- 外部用户很少,并且组织角色得到了明确定义;