授权(Authorization)

authorization2026-09-19 17:35:07

授权(Authorization) 是决定某个主体能否对特定资源执行某项操作的过程,也可以指已经授予主体的访问权限。NIST 授权术语将其描述为授予访问权限,或允许、拒绝主体访问系统对象的决定。

授权回答的是“是否允许做什么”,身份认证回答的是“能否证明是谁”。系统通常会利用经过认证的身份作出授权决定,但两者并不等价;某些机器间或公开资源场景也可能依据其他可信属性和策略决定访问,而不要求传统的用户登录。

授权决策

一次授权决策通常包含:

  • 主体:发起请求的用户、设备、应用或服务;
  • 资源:数据、接口、文件、服务或其他受保护对象;
  • 操作:读取、创建、修改、删除或管理等行为;
  • 策略:描述哪些条件下允许或拒绝操作的规则;
  • 上下文:时间、设备状态、网络位置、风险等级等辅助信息。

系统可以基于用户身份、角色、组、属性、资源属性和环境条件进行判断。授权结果还应由资源所在的服务执行,不能仅依赖客户端界面隐藏按钮或声明自己拥有权限。

直接授权与委托授权

直接授权由资源所属系统决定主体自身能够执行的操作。委托授权则允许一个客户端在资源所有者同意的范围内代表其访问资源。

OAuth 是一种委托授权协议。它让客户端取得范围受限、可以撤销的访问令牌,而不必获得用户密码。取得令牌并不表示客户端拥有用户的全部权限;资源服务器仍需检查令牌的有效期、目标资源和权限范围。

最小权限与撤销

授权应遵循最小权限原则,只授予完成任务所必需的资源和操作范围。权限还应随着职责、会话和资源状态变化而更新,并提供撤销、过期和审计机制,避免已经不再需要的访问能力长期保留。

本页目录