v1oauth 上下文
oauth 上下文总览
v1 oauth 上下文(基础路径 /v1/oauth,即 issuer)的接口组一览与调用方划分。
oauth 上下文是授权服务器本体:发码、换令牌、撤销、自省、公钥分发,以及用户自己的已授权应用管理。它同时服务第三方客户端与第一方同意页。
基础路径:{issuer},即 {origin}/v1/oauth。令牌受众为 oauth。
接口组
| 接口组 | 端点 | 调用方 | 页面 |
|---|---|---|---|
| 换令牌 | POST /token | 第三方客户端(服务端) | oauth 令牌 |
| 撤销 | POST /revoke | 客户端 | 撤销 |
| 自省 | POST /introspect | 机密客户端 | 自省 |
| 公钥 | GET /jwks | 资源服务器 | 公钥 |
| 授权 | POST /preauthorize、POST /authorize | 第一方同意页 | 授权 |
| 已授权应用 | GET /grants、DELETE /grants/:clientId | 第一方控制台 | 已授权应用 |
两类调用方
| 调用方 | 用什么凭证 | 能碰哪些端点 |
|---|---|---|
| 第三方客户端 | 客户端认证(client_secret_basic / client_secret_post / none) | token、revoke、introspect、jwks |
| 第一方同意页与控制台 | 身份断言 + 同意票据,或 oauth 受众的资源令牌 | preauthorize、authorize、grants |
两套令牌互不继承
第一方控制台只持有一条 auth 会话。账号自身的数据(凭据、会话、审计)直接用 auth 资源令牌访问;授权关系则通过 RFC 8693 令牌交换换取 oauth 受众的短期资源令牌(5 分钟、不落库、受众裁剪为 oauth / account)。
交换出来的令牌拿不到 auth 侧的 scope,反之亦然。
令牌响应不缓存
token、revoke、introspect 的响应都带 Cache-Control: no-store。这不是可选加固:
- 令牌响应被缓存,同一枚访问令牌可能被中间层发给另一个请求方;
- 撤销响应是空体,缓存一次 200 会让后续撤销「假装成功」,而令牌还活着;
- 自省结果被缓存,撤销就会在缓存窗口内失效。
jwks 相反,明确允许缓存 5 分钟。