什么是 ABAC 与 RBAC?

  • RBAC(基于角色的访问控制)
    通过将权限绑定到角色,再将角色分配给用户。例如:教师角色可访问教学资源,学生角色仅能查看课程大纲。

    RBAC_Access_Control_Model
  • ABAC(基于属性的访问控制)
    通过动态评估用户、资源、环境等属性来决定访问权限。例如:仅允许在工作时间(属性:time:09:00-17:00)访问敏感数据。

    ABAC_Property_Based_Authentication

核心区别对比 📊

特性 RBAC ABAC
权限粒度 固定角色绑定权限 动态属性组合决策
适用场景 组织结构稳定的企业 需要灵活策略的云环境
配置复杂度 较低 较高(需定义多维属性)
扩展性 有限 高(支持细粒度规则)

💡 ABAC 优势

  • 支持多维度条件(如用户位置、设备类型、时间等)
  • 更适合动态变化的权限需求
  • 可实现更精细的访问控制

⚠️ RBAC 优势

  • 管理简单直观
  • 适合传统企业架构
  • 易于与现有系统集成

如何选择?

  1. 若权限规则固定且依赖组织角色,选择 RBAC
  2. 若需要动态策略(如基于时间/地理位置),选择 ABAC
  3. 混合模式(RBAC + ABAC)可结合两者优势,推荐参考 混合访问控制设计指南

深入学习资源 📘

ABAC_RBAC_comparison_chart