跳到主要内容

6. 令牌请求 (Token Request)

authorization_details 令牌请求参数可用于指定客户端希望 AS 分配给访问令牌的授权详情. AS 会检查底层授权 (对于 authorization_coderefresh_token 等授权类型) 或客户端策略 (对于 client_credentials 授权类型) 是否允许签发带有所请求授权详情的访问令牌. 否则, AS 将使用错误码 invalid_authorization_details 拒绝该请求 (类似于 invalid_scope).

6.1. 比较授权详情 (Comparing Authorization Details)

OAuth 协议中的许多操作允许 AS 和 RS 基于某个请求相对于先前已有请求是在请求 "更多" 还是 "更少" 权限来作出安全决策. 例如, 在刷新令牌时, 客户端可以请求一个比资源所有者先前授权权限 "更少" 的新访问令牌. 所请求的访问令牌将传达被缩减后的权限, 但资源所有者先前的授权不会因此类请求而改变.

由于 authorization_details 中字段的语义会针对给定 API 或 API 集合而与实现相关, 因此不存在用于比较任意两个授权详情请求的标准化机制. 在大多数情况下, AS 不应依赖简单的对象比较, 因为根据 API 的设计和部署方式, 请求中某些字段的交集可能会对授予的访问权产生副作用. 这与某些 API 使用 scope 值时产生的效果类似.

在将新请求与现有请求进行比较时, AS 可以使用最初授予该请求时采用的相同处理技术, 以确定资源所有者是否需要授权该请求. 此比较的细节取决于授权请求类型的定义, 不在本规范范围内, 但可以应用通用模式.