OAuth2 令牌内省代理
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/oauth2-token-introspection-agent。
技能介绍
它解决什么问题
当 API 收到 Authorization: Bearer ... 时,资源服务器往往需要回答三个问题:令牌是否仍有效、允许访问哪些 scope、目标资源是否在 aud 中。只解析 JWT payload 会在签名信任、撤销状态、短期有效令牌和不透明令牌面前失手。这个技能把校验职责交给符合 RFC 7662 的内省端点,并与 Keycloak、Auth0、Okta 的内省 API 对接,适合需要在请求路径上实时核验 claims、scopes 与过期时间的运维和安全场景。
核心能力与关键步骤
- 提取 bearer token:从请求头或 proxy 上游请求中取出访问令牌,避免把完整凭证写入日志。
- 调用内省端点:按环境配置把令牌交给 Keycloak、Auth0 或 Okta 的 introspection API,实时获取令牌状态。
- 核验活跃状态与过期时间:检查
active、exp、iat等标准声明,判断令牌是否仍可访问受保护资源。 - 校验 audience 与 scopes:确认
aud覆盖当前 API 或资源标识;解析scope这一空格分隔字符串,并与 API 所需权限集合做交集判断。 - 返回决策与上下文:把允许、拒绝以及必要 claim 传递给调用方,便于记录审计和返回 401/403。
适用边界与注意点
- 适合资源服务器能可靠访问 IdP 内省端点、且信任该 IdP 作实时判定的情况;网络故障、超时和缓存策略会影响可用性。
- 对标准 JWT validation 已解码 payload 的场景,仍需继续检查
aud等标准声明;本技能补足的是对内省响应中 claims、scopes 和过期状态的核验。 - IdP access tokens 不需要在业务侧再验证,应交给签发它的 IdP 处理。
- 不要把令牌、内省响应或客户端秘密写入日志;scope 名称、audience 和资源标识要先在 API 与 IdP 侧约定清楚。
使用场景
- 资源服务器收到 Bearer 请求后,需按 RFC 7662 调用内省端点,确认令牌是否仍有效。
- 保护 API 前,需校验 audience claim 是否覆盖当前 API,避免令牌被用于其他服务。
- 需要按 scope 字段核对空格分隔权限,仅放行 API 声明的最小权限集合。
- 使用 Keycloak、Auth0 或 Okta 作为 IdP 时,需实时核对 claims、scopes 与过期时间。
适合人员
- 资源服务器工程师:需要为每个 Bearer 请求确认令牌仍有效,并核对允许访问的 scope。
- API 安全工程师:需要用 audience 和 scope 校验防止跨服务重用和越权访问。
- IdP 运维人员:需要在 Keycloak、Auth0 或 Okta 旁路核验 active、exp 与 scope 状态。
- 后端服务开发者:需要把 OAuth2 内省结果接入 401/403 决策和审计记录。