惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
D
Docker
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
Jina AI
Jina AI
小众软件
小众软件
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
美团技术团队
爱范儿
爱范儿
V
V2EX
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
J
Java Code Geeks
博客园 - 司徒正美
博客园 - 叶小钗
S
SegmentFault 最新的问题
量子位
S
Secure Thoughts
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
O
OpenAI News
L
LINUX DO - 最新话题
罗磊的独立博客
SecWiki News
SecWiki News
雷峰网
雷峰网
Recent Announcements
Recent Announcements
V2EX - 技术
V2EX - 技术
T
Tailwind CSS Blog
H
Hacker News: Front Page
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
云风的 BLOG
云风的 BLOG
Schneier on Security
Schneier on Security
T
The Blog of Author Tim Ferriss
IT之家
IT之家
博客园 - 聂微东
腾讯CDC
N
News | PayPal Newsroom
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
Hacker News: Ask HN
Hacker News: Ask HN
aimingoo的专栏
aimingoo的专栏
Webroot Blog
Webroot Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
K
Kaspersky official blog

博客园 - 悠哉大斌

AI Agent 安全沙箱技术对比:E2B、Cube Sandbox 与 Docker Sandboxes linux 升级 claude code的坑 debian(WSL) apt 代理配置 linux内核之Namespaces、Cgroups、Capabilities、Seccomp和Landlock 大语言模型推理中的隐藏瓶颈及其解决方法 Docker Sandboxes 技术是什么,和docker容器有什么区别 什么是 Docker Agent以及一个Docker Agent示例 windows wsl 安装 Temurin® JDK claude Code 和 codex 作为编程代理,前者使用typescript开发,后者使用rust,他们的决策依据是什么 Java 并发编程发展史与 java.util.concurrent 全景解析 LLM 真的改变了编码风格吗? 如果人工智能会犯错且不精确,为什么它正在改变世界? Python 的协程模型和 JavaScript 的 async/await python闭包和function.__closure__特殊属性 python 的 dunder name和 sunder name 基于nodejs设计REST API的知名开源框架 windows上使用node-oracledb Thick 模式连接 Oracle 11g Claude Code CLI连接 DeepSeek V4模型后调用报400错误 python里对象(object)到底是什么 Python 泛型演变史 Python 类型别名的演变 Python 类型提示的演变史 PEP 593 新增的Annotated 类型 Alibaba AgentScope 和 microsoft agent framework 详细对比分析 spring AI Alibaba Agent Framework 和 agentscope有什么区别和联系 AI Agent协作模式以及主流开源框架对协作模式的支持 Tailscale 是如何接管 DNS 的? Agent = Model + Harness 使用rust编写typescript编译器的难点在什么地方,哪些数据结构是rust不擅长的? TypeScript/JavaScript 中的异步迭代语句 js中的生成器函数 Tailscale Serve and Funnel openclaw gateway的网络绑定模式 websocket协议和http协议有何依赖关系? MCP通信的双方是谁? claude code MCP 安装范围 如何在wsl2环境下给claude code cli 配置 playwright-mcp wsl的网络模式有哪几种,有哪些区别? AI Agent memory是什么? ai agent skills是什么? Go测试生态系统工具与最佳实践深度调研(聚焦认证授权系统) 线性代数中常见矩阵类型的概念关系思维导图
三种主流授权策略
悠哉大斌 · 2026-01-05 · via 博客园 - 悠哉大斌

三种主流授权策略的各自特点、优缺点和对比:
基于角色的访问控制Role-Based Access Control (RBAC)
基于属性访问控制Attribute-Based Access Control (ABAC)
访问控制列表Access Control List (ACL)


1. Access Control List (ACL) – 访问控制列表

概述

ACL 是一种以资源为中心的访问控制机制。每个受保护资源(如文件、数据库记录)都附带一个列表,明确列出哪些主体(用户、组)可以执行哪些操作(读、写、删除等)。

特点

  • 细粒度:可针对每个资源单独设置权限。
  • 直观:与 Unix/Linux 文件权限模型类似(如 chmod)。
  • 主体通常是用户或用户组。

优点

  • 实现简单,概念清晰。
  • 适合静态、资源数量有限的场景(如文件系统、小型应用)。

缺点

  • 不易扩展:当用户或资源数量庞大时,管理开销剧增。
  • 缺乏上下文:无法基于环境、时间、设备等动态条件做判断。
  • 权限分散:权限分散在各个资源上,难以全局审计或批量修改。

2. Role-Based Access Control (RBAC) – 基于角色的访问控制

概述

RBAC 是以角色为中心的模型。权限分配给角色,用户通过被赋予一个或多个角色间接获得权限。

特点

  • 三层结构:用户 ↔ 角色 ↔ 权限。
  • 支持角色继承、角色互斥(如“会计”和“审计”不能由同一人担任)。
  • NIST 标准(如 RBAC0–RBAC3)定义了不同复杂度等级。

优点

  • 管理高效:通过角色批量分配权限,降低管理成本。
  • 符合组织结构:天然映射企业中的岗位职责(如“管理员”、“编辑”)。
  • 易于审计和合规(如 GDPR、HIPAA)。

缺点

  • 灵活性不足:难以处理临时权限、跨角色组合或细粒度上下文条件(如“仅在工作时间访问”)。
  • 角色爆炸问题:为满足特殊需求不断创建新角色,导致角色数量失控。

3. Attribute-Based Access Control (ABAC) – 基于属性的访问控制

概述

ABAC 是一种策略驱动的动态授权模型。访问决策基于主体、资源、环境、操作等多维属性的逻辑规则(通常用策略语言如 XACML 表达)。

特点

  • 四类属性:
    • 主体属性(如部门、安全等级)
    • 资源属性(如文档密级、所属项目)
    • 环境属性(如时间、IP 地址、设备类型)
    • 操作属性(如读、写)
  • 决策由策略引擎实时计算。

优点

  • 高度灵活与动态:支持复杂、上下文感知的授权逻辑。
  • 细粒度控制:可实现“某部门员工只能在工作时间访问本部门的非机密文档”这类规则。
  • 适合云原生、多租户、零信任架构等现代场景。

缺点

  • 复杂度高:策略编写、调试、测试成本高。
  • 性能开销:每次请求需实时评估策略,可能影响延迟。
  • 工具链不成熟:相比 RBAC,ABAC 的标准化和工具支持仍在发展中。

对比总结

维度 ACL RBAC ABAC
控制粒度 资源级(较细) 角色级(较粗) 属性级(非常细)
管理复杂度 低(小规模)→ 高(大规模) 中(角色管理) 高(策略编写)
动态性 静态 静态(角色固定) 动态(实时决策)
上下文感知 有限
适用场景 文件系统、嵌入式系统 企业应用、SaaS 后台 云平台、政府、金融、零信任
标准化 广泛支持(如 POSIX) NIST 标准成熟 XACML、ALFA 等,但生态较新

实际建议

  • 小型系统或资源导向型应用(如 CMS、文档库)→ ACL
  • 中大型企业系统,角色清晰(如 ERP、HR 系统)→ RBAC
  • 需要动态、上下文敏感策略的系统(如多租户 SaaS、微服务 API 网关)→ ABAC,或 RBAC + ABAC 混合模型(如用 RBAC 管理基础权限,ABAC 处理例外规则)

现代系统(如 AWS IAM、Azure AD)往往采用 策略+角色 的混合授权模型,兼顾管理效率与灵活性。