首页/开发/系统分析与架构设计速查/授权范围(Scope)设计

授权范围(Scope)设计

Scope 表达令牌被授予的能力边界:按资源与动作命名(orders:read、orders:write),服务端逐请求校验;范围过粗失去最小权限意义,过细难以维护。

命名资源:动作 形式,语义清晰可审计
校验每个接口声明所需 scope,运行时逐项判断
治理scope 增删走评审;默认拒绝未声明的范围

scope 命名与校验示意

scope 命名与校验示意
orders:read     读取订单
orders:write    创建与修改订单
reports:export  导出报表

接口声明:GET /orders 需要 orders:read
校验:令牌 scope 不包含所需范围 → 返回 403
Scope 属于授权语义,与角色模型配合:角色映射到 scope 集合,用户与角色解耦。

易错点

  • 全部接口共用一个全权限 scope,失去隔离意义
  • 接口未声明所需 scope,越权调用无从拦截

数据来源与参考

  • RFC 6749:OAuth 2.0(3.3 Access Token Scope)
  • RFC 9700:OAuth 2.0 Security Best Current Practice
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌