跳到主要内容

1. 引言

在 OAuth 2.0 [RFC6749] 中, 令牌内容对客户端是不透明的. 这意味着客户端不需要了解令牌本身的内容或结构 (如果存在). 但是, 仍有大量元数据可能附加到令牌上, 例如其当前有效性, 已批准 scope, 以及令牌签发时上下文的信息. 这些信息对于受保护资源基于所呈现令牌作出授权决策通常至关重要. 由于 OAuth 2.0 没有定义资源服务器从授权服务器了解所收到令牌元信息的协议, 因此已经发展出几种不同方法来弥合这一缺口. 这些方法包括使用 JWT [RFC7519] 等结构化令牌格式, 或使用专有的服务间通信机制 (例如共享数据库和受保护的企业服务总线) 来传递令牌信息.

本规范定义一种协议, 允许已授权的受保护资源查询授权服务器, 以确定 OAuth 2.0 客户端向其呈现的给定令牌的元数据集合. 这些元数据包括令牌当前是否处于活动状态 (或是否已过期或以其他方式被撤销), 令牌携带哪些访问权 (通常通过 OAuth 2.0 scopes 传达), 以及授予令牌时的授权上下文 (包括谁授权了该令牌以及该令牌签发给哪个客户端). 令牌内省 (token introspection) 允许受保护资源查询这些信息, 无论这些信息是否携带在令牌本身中, 从而使该方法可以与结构化令牌值结合使用, 也可以独立使用. 此外, 受保护资源可以使用本规范描述的机制, 在特定授权决策上下文中内省令牌, 并确定与该令牌相关的元数据, 以便适当地作出授权决策.

1.1. 符号约定

本文档中的关键词 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', 'MAY', 和 'OPTIONAL' 应按 [RFC2119] 中的说明解释.

除非另有说明, 所有协议参数名称和值都区分大小写.

1.2. 术语

本节定义本规范使用的术语. 本节是本规范的规范性部分, 对实现施加要求.

本规范使用 OAuth 2.0 [RFC6749] 定义的术语 "access token", "authorization endpoint", "authorization grant", "authorization server", "client", "client identifier", "protected resource", "refresh token", "resource owner", "resource server", 和 "token endpoint", 以及 JSON Web Token (JWT) [RFC7519] 定义的术语 "claim names" 和 "claim values".

本规范定义以下术语:

Token Introspection : 使用本文档定义的网络协议查询 OAuth 2.0 令牌当前状态的行为.

Introspection Endpoint : 执行令牌内省操作的 OAuth 2.0 端点.