[RFC] 122 - 桌面端 OAuth 鉴权机制优化 #8449
arvinxx
started this conversation in
RFC | 特性开发
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
本 RFC 提议修改现有的 OIDC Provider 配置,将其生成的
access_token
从默认的 Opaque Token (不透明令牌) 格式更改为 JWT (JSON Web Token) 格式。此举旨在解决 Opaque Token 验证时必须访问数据库所带来的性能开销,并确保令牌验证逻辑能够兼容 Edge Runtimes (如 Vercel Edge Functions, Cloudflare Workers),从而提升系统性能、降低服务间耦合度,并解锁在边缘计算环境部署的能力。2. 背景与动机 (Background & Motivation)
当前状态:
我们的 OIDC Provider (基于
oidc-provider
库) 当前生成的access_token
是一个短的、无意义的随机字符串(即 Opaque Token)。为了验证这个令牌,资源服务器必须回调 OIDC Provider 的introspection
端点,该端点进而需要查询数据库以获取令牌的元数据和有效性。存在的问题:
目标状态:
access_token
应为自包含的 JWT。资源服务器(无论部署在 Serverless 还是 Edge)只需获取一次 OIDC Provider 的公钥(通过 JWKS 端点),即可在本地、无数据库依赖地对 JWT 进行签名和声明(claims)的验证。3. 方案设计 (Proposed Solution)
我们将采用
node-oidc-provider
库推荐的、符合 RFC 8707 标准的 Resource Indicators 特性来实现此目标。核心思路是:将我们的核心 API 定义为一个“资源(Resource)”,并配置 OIDC Provider,使其在为该资源颁发
access_token
时,强制使用 JWT 格式。这将通过两处关键配置的协同工作来完成:
resourceIndicators
行为。3.1. OIDC Provider 配置 (
createOIDCProvider.ts
)3.2. 客户端定义 (
./config.ts
或类似文件)进展
Beta Was this translation helpful? Give feedback.
All reactions