基于属性的访问控制 (ABAC)
基于属性的访问控制 (ABAC, Attribute Based Access Control) 通过动态计算一个或一组属性是否满足某种条件来进行授权判断。可以按需实现不同颗粒度的权限控制,但定义权限时不易看出用户和对象间的关系。如果规则复杂,容易给管理者带来维护和追查带来麻烦。
属性通常来说分为四类:
- 用户属性(如用户年龄)
- 环境属性(如当前时间)
- 操作属性(如读取)
- 对象属性(如一篇文章,又称资源属性)
指定基于属性的控制协议需要将主体,环境,客体的属性构建集合,通过关联控制策略形成响应结果.
跟 RBAC 相比,ABAC 对权限的控制粒度更细,如控制用户的访问速率。实际开发中可以结合 RBAC 角色管理的优点和 ABAC 的灵活性一起使用。
文章来源:博客园
,