什么是 ABAC 与 RBAC?
RBAC(基于角色的访问控制)
通过将权限绑定到角色,再将角色分配给用户。例如:教师角色可访问教学资源,学生角色仅能查看课程大纲。ABAC(基于属性的访问控制)
通过动态评估用户、资源、环境等属性来决定访问权限。例如:仅允许在工作时间(属性:time:09:00-17:00
)访问敏感数据。
核心区别对比 📊
特性 | RBAC | ABAC |
---|---|---|
权限粒度 | 固定角色绑定权限 | 动态属性组合决策 |
适用场景 | 组织结构稳定的企业 | 需要灵活策略的云环境 |
配置复杂度 | 较低 | 较高(需定义多维属性) |
扩展性 | 有限 | 高(支持细粒度规则) |
💡 ABAC 优势:
- 支持多维度条件(如用户位置、设备类型、时间等)
- 更适合动态变化的权限需求
- 可实现更精细的访问控制
⚠️ RBAC 优势:
- 管理简单直观
- 适合传统企业架构
- 易于与现有系统集成
如何选择?
- 若权限规则固定且依赖组织角色,选择 RBAC
- 若需要动态策略(如基于时间/地理位置),选择 ABAC
- 混合模式(RBAC + ABAC)可结合两者优势,推荐参考 混合访问控制设计指南