---

title: OAuth Scope设计与资源服务器授权策略最佳实践

keywords:

  • OAuth
  • Scope
  • 资源服务器
  • 授权策略
  • 细粒度权限
  • Policy Engine

description: 围绕OAuth Scope的细粒度设计与资源服务器授权策略执行,提供统一的权限映射、拒绝默认与最小授权落地方案。

categories:

  • 文章资讯
  • 技术教程

---

OAuth Scope设计与资源服务器授权策略最佳实践

概述

良好的Scope设计与执行可实现最小授权与清晰边界。本文给出Scope命名约定、策略映射与资源服务器侧的统一执行示例。

Scope命名约定

<resource>:<action>
orders:read
orders:write
users:read
users:write

策略映射

type Policy = { route: string; method: string; requiredScope?: string }

const policies: Policy[] = [
  { route: '/orders', method: 'GET', requiredScope: 'orders:read' },
  { route: '/orders', method: 'POST', requiredScope: 'orders:write' },
  { route: '/users', method: 'GET', requiredScope: 'users:read' }
]

function requiredScopeFor(route: string, method: string): string | undefined {
  return policies.find(p => p.route === route && p.method === method)?.requiredScope
}

资源服务器执行

type Token = { sub: string; scope: string[]; exp: number }

function authorize(route: string, method: string, token: Token): { allowed: boolean; reason?: string } {
  const required = requiredScopeFor(route, method)
  if (!required) return { allowed: false, reason: 'policy_missing' } // 默认拒绝
  const allowed = token.scope.includes(required)
  return allowed ? { allowed } : { allowed: false, reason: 'scope_missing' }
}

运维要点

  • Scope遵循资源:动作命名,避免模糊或过宽权限
  • 资源服务器默认拒绝并基于策略执行最小授权
  • 在审计中记录缺失策略与权限拒绝,驱动策略完善

通过一致的命名与统一执行,可在OAuth体系中实现清晰边界与最小授权。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部