5. Authorization Request (授权请求)
5. Authorization Request (授权请求)
客户端使用 application/x-www-form-urlencoded 格式将下列参数加入授权端点 URI 的查询部分以构造授权请求 URI:
request
: 除非指定了 request_uri, 否则为必需. 即 Request Object (第 2.1 节), 承载 [RFC6749] (OAuth 2.0) 第 4 节所述授权请求参数. 若授权请求中存在该参数, 则不得存在 request_uri.
request_uri
: 除非指定了 request, 否则为必需. 即 RFC 3986 [RFC3986] 定义的绝对 URI, 为 Request Object URI (第 2.2 节), 引用 [RFC6749] (OAuth 2.0) 第 4 节所述授权请求参数. 若授权请求中存在该参数, 则不得存在 request.
client_id
: 必需. OAuth 2.0 [RFC6749] 的 client_id. 其值必须与 request 或 request_uri 所指 Request Object (第 2.1 节) 中的 client_id 一致.
客户端通过 HTTP 重定向响应或其他经用户代理可用的方式将资源所有者引导至所构造的 URI.
例如, 客户端引导终端用户的用户代理发起下列 HTTPS 请求:
GET /authz?client_id=s6BhdRkqt3&request=eyJhbG..AlMGzw HTTP/1.1
Host: server.example.com
为简洁起见, request 参数值已缩写.
Authorization Request Object 必须是以下之一:
(a) 经 JWS 签名;
(b) 经 JWS 签名且经 JWE 加密.
客户端也可以将 Request Object 中的参数重复放在查询参数中以便向后兼容等. 但支持本规范的授权服务器必须仅使用 Request Object 中所含的参数.
见 5.1. Passing a Request Object by Value (按值传递请求对象) 与 5.2. Passing a Request Object by Reference (按引用传递请求对象).