知识库

ABAC 属性访问控制是什么?复杂业务权限如何动态判断?

安全猿 · 产品团队阅读约 2 分钟
会议室桌面上方悬浮着一张由细光点构成的网格矩阵

岗位权限(RBAC)简单直观,但遇到复杂条件就力不从心。ABAC 用“属性”来描述谁、什么资源、什么环境,让权限判断更灵活。

“财务部的人可以看财务报表。”——这是最常见的权限规则。但现实往往更复杂:“财务部的人,在公司办公网内、使用受管电脑、工作时间,才可以导出报表。”这类规则,岗位权限就很难表达了。ABAC 正是为此而生。

先说常见的 RBAC

RBAC(基于角色的访问控制):给用户分配角色,角色对应权限。

  • 优点:直观、好管理,适合岗位清晰的场景;
  • 局限:条件一多,就要不停地新增角色。比如“财务 + 外出 + 手机”也要一个角色,角色会越来越多,最终难以维护(常被称为“角色爆炸”)。

ABAC 是什么

ABAC(基于属性的访问控制),不只看“你是什么角色”,而是综合多种属性判断:

  • 用户属性: 部门、岗位、职级、是否外包;
  • 资源属性: 数据敏感级别、所属业务、所属部门;
  • 环境属性: 时间、地点、网络环境、设备状态;
  • 操作属性: 查看、下载、导出、修改。
图 1ABAC:四类属性汇入策略判断

策略用类似这样的语言表达:“当用户属于财务部,且资源是财务报表,且设备受管、网络可信时,允许查看;导出需要额外验证。”

RBAC 与 ABAC,怎么搭配

对比 RBAC ABAC
判断依据 角色 多种属性的组合
灵活性 较低,条件多则角色激增 较高,可表达复杂条件
复杂度 简单直观 策略设计与维护要求更高
适合场景 岗位清晰、规则稳定 条件复杂、需要动态判断

实践中常见的做法是:以角色(RBAC)打底,在关键场景用属性(ABAC)加条件,兼顾易管理与灵活性。

落地时的几个提醒

  • 属性要可靠: 属性数据不准确,判断就会失真,先把基础数据理顺;
  • 策略从关键场景开始: 不必一开始就全面铺开;
  • 规则要可解释、可测试: 避免策略互相冲突,让用户和管理员都能看懂;
  • 记录判断过程: 便于事后核对为什么放行或拒绝。

这些属性从哪里来,也是个实际问题。在统一身份认证准入平台里,身份管理(账号管理、权限管理、组织架构)提供用户与组织属性,安全准入(终端识别、环境检测、访问控制、策略管理)提供设备与环境属性,再由统一策略引擎集中管理规则,访问日志与操作审计记录判断结果,思路上与“按多种属性动态判断”是一致的。

小结

  • RBAC 看角色,简单直观;ABAC 看多种属性,更灵活。
  • 常见做法:RBAC 打底,关键场景用 ABAC 加条件。
  • 落地要保证属性可靠、从关键场景起步、策略可解释。

延伸阅读

零信任ABACRBAC属性访问控制权限管理统一身份认证准入
← 返回零信任与安全接入