权限模型分类
2025/10/10大约 8 分钟
主流的权限控制模型
在权限控制领域,多种主流的权限控制模型,它们各自有不同的设计逻辑和适用场景。以下是常见的几种:
1. DAC(自主访问控制,Discretionary Access Control)
- 核心逻辑:资源的所有者可以自主决定谁能访问该资源,以及拥有何种访问权限(如读、写、执行)。权限的分配和回收由资源所有者完全掌控。
- 典型特点:灵活性高,权限管理分散,但安全性较低,易出现权限滥用或权限蔓延问题。
- 适用场景:个人设备、小型团队的私有资源管理(如个人电脑文件权限、单机版应用的文档权限)。
- 示例:Linux/Unix系统中文件的
rwx权限(所有者、所属组、其他用户的权限分配)。
2. MAC(强制访问控制,Mandatory Access Control)
- 核心逻辑:权限由系统管理员或安全策略强制定义,资源所有者无法自主修改权限。所有主体(用户/进程)和客体(文件/数据)都被标记安全级别(如“绝密”“机密”“公开”),只有主体级别≥客体级别时才能访问。
- 典型特点:安全性极高,权限管控严格,但灵活性差,管理成本高。
- 适用场景:高安全等级的涉密系统、军工/政府敏感数据管理、金融核心交易系统。
- 示例:军事保密系统、SELinux(Linux安全增强模块)的强制访问控制模式。
3. ABAC(基于属性的访问控制,Attribute-Based Access Control)
- 核心逻辑:通过主体属性(用户角色、部门、职级)、客体属性(数据类型、敏感等级)、环境属性(访问时间、IP地址、设备类型)和策略规则来动态判断权限,而非预定义角色。
- 典型特点:灵活性和扩展性极强,可实现精细化、动态化权限管控,但策略配置和维护复杂度高。
- 适用场景:云原生系统、多租户平台、复杂业务场景(如电商的订单数据访问需结合用户身份、地区、时间、订单状态)。
- 示例:云服务商的资源访问策略(如AWS的IAM基于标签/属性的权限控制)、企业级SaaS系统的多维度权限管控。
4. PBAC(基于策略的访问控制,Policy-Based Access Control)
- 核心逻辑:将权限规则抽象为全局安全策略,系统根据策略自动匹配权限,策略可统一管理和动态调整,是ABAC的“策略中心化”延伸。
- 典型特点:策略与业务解耦,便于批量管控和审计,但策略设计需兼顾安全性与业务灵活性。
- 适用场景:大型企业的统一权限平台、跨系统的权限协同(如集团级多业务线的权限策略统一)。
5. TBAC(基于任务的访问控制,Task-Based Access Control)
- 核心逻辑:权限与业务任务/流程绑定,用户仅在执行特定任务时获得临时权限,任务结束后权限自动回收,遵循“最小权限”和“时效权限”原则。
- 典型特点:权限时效性强,可降低权限滥用风险,但需与业务流程深度耦合。
- 适用场景:流程驱动型系统(如OA审批流程、金融风控审批、运维工单系统)。
- 示例:运维人员通过工单申请临时服务器登录权限,工单审批通过后限时生效,任务完成后权限自动失效。
6. CBAC(基于上下文的访问控制,Context-Based Access Control)
- 核心逻辑:在ABAC基础上强化环境上下文的权重,访问权限不仅依赖主体/客体属性,还需满足上下文条件(如访问时段、网络环境、设备安全状态)。
- 典型特点:可实现“场景化权限”,安全性更高,适合动态变化的访问环境。
- 适用场景:移动办公系统(如仅允许企业内网/合规设备访问核心数据)、金融APP的异地登录权限管控。
权限控制模型核心区别对比
| 模型 | 核心依据 | 灵活性 | 安全性 | 管理成本 | 典型场景 |
|---|---|---|---|---|---|
| DAC | 资源所有者自主分配 | 高 | 低 | 低 | 个人/小型私有资源 |
| MAC | 系统强制安全等级 | 低 | 极高 | 高 | 涉密/高安全等级系统 |
| RBAC | 预定义角色 | 中 | 中 | 中 | 企业常规业务权限管理 |
| ABAC | 主体/客体/环境多维度属性 | 极高 | 中高 | 高 | 复杂/动态业务场景 |
| TBAC | 业务任务/流程 | 中高 | 中高 | 中 | 流程驱动型权限管控 |
权限控制模型选型对照表
以下对照表从核心特性、适配场景、优势、局限性、技术实现难度、典型技术方案6个维度,对主流权限控制模型进行梳理,方便你根据业务场景快速选型:
| 权限模型 | 核心特性 | 适配场景 | 核心优势 | 主要局限性 | 技术实现难度 | 典型技术方案 |
|---|---|---|---|---|---|---|
| DAC(自主访问控制) | 资源所有者自主分配权限,权限颗粒度为基础读写执行 | 个人设备资源管理、小型团队私有文件共享、单机应用权限 | 配置简单、管理成本低、灵活性高 | 安全性差、易出现权限蔓延、无统一审计能力 | 极低 | Linux/Unix文件rwx权限、Windows文件共享权限 |
| MAC(强制访问控制) | 系统强制定义安全等级,主体/客体标记密级,权限不可自主修改 | 军工涉密系统、政府敏感数据平台、金融核心交易系统 | 安全性极高、权限管控严格、可满足合规审计 | 灵活性极差、管理成本高、不适配普通业务场景 | 高 | SELinux强制模式、军用保密操作系统、可信计算平台 |
| RBAC(基于角色的访问控制) | 权限与角色绑定,用户关联角色获得权限,支持角色继承/分级 | 企业常规业务系统(ERP/CRM)、内部管理平台、中小规模应用 | 结构清晰、易于管理、适配组织架构、审计便捷 | 权限颗粒度较粗、无法满足动态/多维度权限需求 | 中 | Spring Security RBAC模块、Shiro角色权限体系、Keycloak角色管理 |
| ABAC(基于属性的访问控制) | 基于主体/客体/环境多维度属性+策略规则动态判断权限 | 云原生平台、多租户SaaS系统、电商复杂数据权限、政企混合云权限 | 灵活性极强、颗粒度精细化、支持动态权限管控 | 策略配置复杂、性能开销高、维护成本高 | 高 | AWS IAM属性策略、Azure RBAC+标签、开源项目Authzed |
| PBAC(基于策略的访问控制) | 权限逻辑抽象为全局策略,策略统一管控、动态下发 | 集团级统一权限平台、跨系统权限协同、多业务线策略统一 | 策略与业务解耦、批量管控效率高、便于全局审计 | 策略设计需兼顾安全与业务、策略冲突难排查 | 中高 | 开源项目OPA(Open Policy Agent)、企业级统一权限中台 |
| TBAC(基于任务的访问控制) | 权限与业务任务/流程绑定,任务执行时临时授权,结束后自动回收 | OA审批流程、金融风控工单、运维临时权限申请、项目流程管控 | 遵循最小权限原则、降低权限滥用风险、权限时效性强 | 需与业务流程深度耦合、流程变更会影响权限体系 | 中 | 运维工单系统(如Ansible Tower权限工单)、OA审批权限模块、金融工单风控系统 |
| CBAC(基于上下文的访问控制) | 强化环境上下文权重,结合访问时段/IP/设备状态判断权限 | 移动办公系统、远程访问平台、金融APP异地权限管控 | 适配动态访问场景、安全性高、可实现场景化权限 | 上下文校验性能开销大、设备状态校验复杂 | 中高 | 企业VPN+设备指纹权限、金融APP登录环境校验、零信任访问控制(ZTNA) |
选型核心决策建议
- 优先选RBAC:如果是常规企业内部系统,组织架构稳定、权限需求无复杂动态规则,RBAC是性价比最高的选择。
- 选ABAC/CBAC:如果是云原生、多租户或需精细化动态权限(如结合地区/时间/设备管控),优先考虑ABAC或CBAC。
- 选TBAC:如果是流程驱动型业务(如工单/审批),需临时权限管控,TBAC可实现权限“用完即回收”。
- 选MAC:仅在涉密、高安全等级合规场景下使用,普通业务不建议采用。