一些标准的常见的 Access Control Policy:
基于角色访问控制 Role-Based Access Control(RBAC)
- 定义:根据角色确定访问权限,用户可以绑定不同角色。
- 优点:管理较为灵活,目前的主流模型。
- 例子:管理员角色、编辑角色、读者角色拥有不同的权限,新增加一个用户只需要设定相应角色,不需要依次设置对每个操作的权限。
自主访问控制 Discretionary Access Control(DAC)
- 定义:由资源的所有者、某些组的成员确定访问权限。
- 优点:可以基于数据/资源自主控制权限。
- 缺点:控制较为分散,不易管理。
- 例子:文章的发布者指定哪些其它用户可以对这篇文章进行哪些操作。
强制访问控制 Mandatory Access Control(MAC)
- 定义:给信息添加敏感程度标签,与用户的敏感程度标签进行对比确定能否访问。而标签是由管理员设定,
- 优点:适用于安全要求较高如军事相关的系统。
- 缺点:不够灵活。
- 例子:A 资源拥有敏感标签B,C用户拥有敏感标签D,如果D不小于B,则B可以访问A。
基于属性访问控制 Attribute Based Access Control(ABAC)/Policy-Based Access Control(PBAC)/Claims-Based Access Control(CBAC)
- 定义:根据用户属性、资源属性动态计算访问权限。
- 优点:集中化管理、支持不同颗粒度的权限控制。
- 缺点:不能直观看出用户和资源的访问关系,需要实时计算,较多规则会有性能问题。
- 例子:满足A条件的用户可以对满足B条件的资源进行C操作。