授权
授权 是什么?
授权在身份认证完成后,决定该身份对哪些资源、可以执行哪些操作以及在何种条件下被允许的过程。
授权 (AuthZ) 紧跟在认证之后:当用户、服务或设备证明了自己的身份后,系统必须判断该身份能否对特定资源执行所请求的操作。决策可以基于角色 (RBAC)、属性与策略 (ABAC)、安全分类 (MAC) 或所有者的自主裁量 (DAC),通常由一个 policy decision point 负责执行,它会评估主体、资源、操作和环境,并由一个 policy enforcement point 对请求进行把关。现代技术栈通过 OAuth 2.0 作用域 (RFC 6749)、OpenID Connect 声明、XACML 或 Rego/Open Policy Agent (OPA) 等标准将策略外置,从而让规则脱离应用程序代码。
授权是 Web 上最容易出错的安全控制。OWASP 在其 2021 年 Top 10 中将失效的访问控制 (Broken Access Control) 列为 A01,即排名第 1 的风险,在 94% 的受测应用中均有发现,这一排名在 2025 年版本中得以保留。最典型的缺陷是 IDOR (Insecure Direct Object Reference,不安全的直接对象引用):通过修改 URL 或 API 调用中的数字 id 来读取另一个租户的数据。2022 年澳大利亚 Optus 的数据泄露事件通过一个无需认证、可枚举的 API 端点,泄露了约 1000 万名客户的记录;2019 年 Instagram 的 IDOR 则暴露了私密帖子和动态。
一类更隐蔽的问题是 confused deputy(混淆代理),即诱使一个权限更高的组件代攻击者滥用其权限——这是 CSRF 和 SSRF 在概念上的根源。防御措施包括:默认拒绝,在服务器端对每个请求都执行授权(绝不信任客户端),不仅检查认证还要检查对象所有权,优先使用不可猜测的标识符,记录访问决策,并持续测试水平和垂直方向的权限提升。
flowchart LR U[Authenticated request] --> PEP[Policy Enforcement Point] PEP --> PDP[Policy Decision Point] CTX[Subject resource action environment] --> PDP POL[(Policy RBAC ABAC Rego)] --> PDP PDP -->|Permit| R[Access resource] PDP -->|Deny| X[403 Forbidden and audit log]
● 示例
- 01
向客服人员授予客户工单的只读访问权限,但不开放计费数据。
- 02
签发只包含 "orders:read" 等有限作用域的 OAuth 2.0 访问令牌。
● 常见问题
授权 是什么?
在身份认证完成后,决定该身份对哪些资源、可以执行哪些操作以及在何种条件下被允许的过程。 它属于网络安全的 身份与访问 分类。
授权 是什么意思?
在身份认证完成后,决定该身份对哪些资源、可以执行哪些操作以及在何种条件下被允许的过程。
如何防御 授权?
针对 授权 的防御通常结合技术控制与运营实践,详见上方完整定义。
授权 还有哪些其他名称?
常见的别称包括: AuthZ, 访问控制。