5.2. 错误响应
================
授权服务器使用HTTP 400(错误请求)状态码响应,在响应中包含下列参数:
- error
必需的。下列ASCII[USASCII]错误代码之一:
- invalid_request
请求缺少必需的参数、包含不支持的参数值(除了许可类型)、重复参数、包含多个凭据、采用超过一种客户端身份验证机制或其他不规范的格式。
- invalid_client
客户端身份验证失败(例如,未知的客户端,不包含客户端身份验证,或不支持的身份验证方法)。授权服务器可以返回HTTP 401(未授权)状态码来指出支持的HTTP身份验证方案。如果客户端试图通过“Authorization”请求标头域进行身份验证,授权服务器必须响应HTTP 401(未授权)状态码,并包含与客户端使用的身份验证方案匹配的“WWW-Authenticate”响应标头字段。
- invalid_grant
提供的授权许可(如授权码、资源所有者凭据)或刷新令牌无效、过期、吊销、与在授权请求使用的重定向URI不匹配或颁发给另一个客户端。
- unauthorized_client
进行身份验证的客户端没有被授权使用这种授权许可类型。
- unsupported_grant_type
授权许可类型不被授权服务器支持。
- invalid_scope
请求的范围无效、未知的、格式不正确或超出资源所有者许可的范围。
“error”参数的值不能包含集合%x20-21 /%x23-5B /%x5D-7E以外的字符。
- error_description
可选的。提供额外信息的人类可读的ASCII[USASCII]文本,用于协助客户端开发人员理解所发生的错误。“error_description”参数的值不能包含集合%x20-21 /%x23-5B /%x5D-7E以外的字符。
- error_uri
可选的。指向带有有关错误的信息的人类可读网页的URI,用于提供客户端开发人员关于该错误的额外信息。“error_uri”参数值必须符合URI参考语法,因此不能包含集合%x21/%x23-5B /%x5D-7E以外的字符。
这些参数使用[RFC4627][RFC4627]定义的“application/json”媒体类型包含在HTTP响应实体正文中。通过将每个参数添加到最高结构级别, 参数被序列化为JavaScript对象表示法(JSON)的结构。参数名称和字符串值作为JSON字符串类型包含。数值的值作为JSON数字类型包含。参数顺序无关并可以变化。例如:
HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"error":"invalid_request"
}
[RFC4627]:http://tools.ietf.org/html/rfc4627 "JSON"
- 1.介绍
- 1.1.角色
- 1.2.协议流程
- 1.3.授权许可
- 1.3.1.授权码
- 1.3.2.隐式授权
- 1.3.3.资源所有者密码凭据
- 1.3.4.客户端凭据
- 1.4.访问令牌
- 1.5.刷新令牌
- 1.6.TLS版本
- 1.7.HTTP重定向
- 1.8.互操作性
- 1.9.符号约定
- 2.客户端注册
- 2.1.客户端类型
- 2.2.客户端标识
- 2.3.客户端身份验证
- 2.3.1.客户端密码
- 2.3.2.其他身份验证方法
- 2.4.未注册的客户端
- 3.协议端点
- 3.1.授权端点
- 3.1.1.响应类型
- 3.1.2.重定向端点
- 3.2.令牌端点
- 3.2.1客户端身份验证
- 3.3.访问令牌范围
- 4.获得授权
- 4.1.授权码许可
- 4.1.1.授权请求
- 4.1.2.授权响应
- 4.1.3.访问令牌请求
- 4.1.4.访问令牌响应
- 4.2.隐式许可
- 4.2.1.授权请求
- 4.2.2.访问令牌响应
- 4.3.资源所有者密码凭据许可
- 4.3.1.授权请求和响应
- 4.3.2.访问令牌请求
- 4.3.3.访问令牌响应
- 4.4.客户端凭证许可
- 4.4.1.授权请求和响应
- 4.4.2.访问令牌请求
- 4.4.3.访问令牌响应
- 4.5.扩展许可
- 5.颁发访问令牌
- 5.1.成功响应
- 5.2.错误响应
- 6.刷新访问令牌
- 7.访问受保护资源
- 7.1.访问令牌类型
- 7.2.错误响应
- 8.可扩展性
- 8.1.定义访问令牌类型
- 8.2.定义新的端点参数
- 8.3.定义新的授权许可类型
- 8.4.定义新的授权端点响应类型
- 8.5.定义其他错误代码
- 9.本机应用程序
- 10.安全性考虑
- 10.1.客户端身份验证
- 10.2.客户端仿冒
- 10.3.访问令牌
- 10.4.刷新令牌
- 10.5.授权码
- 10.6.授权码重定向URI操纵
- 10.7.资源拥有者密码凭据
- 10.8.请求机密性
- 10.9.确保端点真实性
- 10.10.凭据猜测攻击
- 10.11.钓鱼攻击
- 10.12.跨站请求伪造
- 10.13.点击劫持
- 10.14.代码注入和输入验证
- 10.15.自由重定向
- 10.16.隐式流程中滥用访问令牌假冒资源所有者
- 11.IANA考量
- 11.1.OAuth访问令牌类型注册表
- 11.1.1.注册模板
- 11.2.OAuth参数注册表
- 11.2.1.注册模板
- 11.2.2.初始注册表内容
- 11.3.OAuth授权端点响应类型注册表
- 11.3.1.注册模板
- 11.3.2.初始注册表内容
- 11.4.OAuth扩展错误注册表
- 11.4.1.注册模板
- 12.参考文献
- 12.1.规范性文献
- 12.2.参考性文献
- 附录A. 增强巴科斯-诺尔范式(ABNF)语法
- a.1.“client_id”语法
- a.2.“client_secret”语法
- a.3.“response_type”语法
- a.4.“scope”语法
- a.5.“state”语法
- a.6.“redirect_uri”语法
- a.7.“error”语法
- a.8.“error_description”语法
- a.9.“error_uri”语法
- a.10.“grant_type”语法
- a.11.“code”语法
- a.12.“access_token”语法
- a.13.“token_type”语法
- a.14.“expires_in”语法
- a.15.“username”语法
- a.16.“password”语法
- a.17.“refresh_token”语法
- a.18.端点参数语法
- 附录B. 使用application/x-www-form-urlencoded媒体类型
- 附录C. 致谢
- 勘误
- 3446
- 3500