没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
互联网工程任务组(IETF)
RFC:6749
淘汰:5849
类别:标准化过程
ISSN:2070-1721
D. Hardt, Ed.
Microsoft
2012 年 10 月
OAuth 2.0 授权框架
摘要
OAuth 2.0 授权框架允许第三方应用获取对 HTTP 服务的受限访问。既可以通过在资源所有者和 HTTP
服务之间安排认可的交互使第三方应用代表资源所有者,也可以通过允许第三方应用以自己的名义进行
访问。本规范取代和淘汰在 RFC5849
中描述的 OAuth 1.0 协议。
本备忘录状态
这是一个互联网标准化过程文档。
本文档是互联网工程任务组(IETF)的作品。它代表了 IETF 社区的共识。它已接受公开审查并被互联
网工程指导小组(IESG)批准公布。互联网标准的更多信息可在 RFC5741
的第
2
节 找到。
有关本文档的当前状态、勘误表以及如何提供反馈的信息可参见 http://www.rfc-
editor.org/info/rfc6749。
版权声明
IETF 信托及标识为本文档的作者版权所有(c)2012。保留所有权利。
本文档受 BCP78
和 IETF 信托有关 IETF 文档的法律条款 (http://trustee.ietf.org/license-info ) 的约
束,自本文档发布之日起生效。请仔细查阅这些文件,因为它们描述了与本文档有关的权利和限制。从
本文档中提取的代码组件必须按信托法律条款 4.e
节所述包括简化 BSD 许可证文本;并且按简化 BSD
许可证中所述不附带质量保证。
来源:https://github.com/jeansfish/RFC6749.zh-cn
目录
1. 简介..................................................................................................................5
1.1. 角色...........................................................................................................5
1.2. 协议流程.....................................................................................................6
1.3. 授权许可.....................................................................................................6
1.3.1. 授权码.................................................................................................6
1.3.2. 隐式许可..............................................................................................7
1.3.3. 资源所有者密码凭据..............................................................................7
1.3.4. 客户端凭据...........................................................................................7
1.4. 访问令牌.....................................................................................................7
1.5. 刷新令牌.....................................................................................................8
1.6. TLS 版本....................................................................................................9
1.7. HTTP 重定向..............................................................................................9
1.8. 互操作性.....................................................................................................9
1.9. 符号约定.....................................................................................................9
2. 客户端注册.......................................................................................................10
2.1. 客户端类型................................................................................................10
2.2. 客户端标识................................................................................................11
2.3. 客户端身份验证.........................................................................................11
2.3.1. 客户端密码.........................................................................................11
2.3.2. 其他身份验证方法................................................................................12
2.4. 未注册客户端.............................................................................................12
3. 协议端点..........................................................................................................13
3.1. 授权端点...................................................................................................13
3.1.1. 响应类型............................................................................................13
3.1.2. 重定向端点.........................................................................................13
3.2. 令牌端点...................................................................................................14
3.2.1. 客户端身份验证...................................................................................15
3.3. 访问令牌范围.............................................................................................15
4. 获得授权..........................................................................................................16
4.1. 授权码许可................................................................................................16
4.1.1. 授权请求............................................................................................17
4.1.2. 授权响应............................................................................................17
4.1.3. 访问令牌请求......................................................................................19
4.1.4. 访问令牌响应......................................................................................19
4.2. 隐式许可...................................................................................................20
4.2.1. 授权请求............................................................................................21
4.2.2. 访问令牌响应......................................................................................22
4.3. 资源所有者密码凭据许可.............................................................................23
4.3.1. 授权请求和响应...................................................................................24
4.3.2. 访问令牌请求......................................................................................24
4.3.3. 访问令牌响应......................................................................................25
4.4. 客户端凭据许可.........................................................................................25
4.4.1. 授权请求和响应...................................................................................25
4.4.2. 访问令牌请求......................................................................................26
4.4.3. 访问令牌响应......................................................................................26
4.5. 扩展许可...................................................................................................26
5. 颁发访问令牌...................................................................................................28
2/51
5.1. 成功的响应................................................................................................28
5.2. 错误响应...................................................................................................29
6. 刷新访问令牌...................................................................................................30
7. 访问受保护资源................................................................................................31
7.1. 访问令牌类型.............................................................................................31
7.2. 错误响应...................................................................................................31
8. 可扩展性..........................................................................................................32
8.1. 定义访问令牌类型......................................................................................32
8.2. 定义新的端点参数......................................................................................32
8.3. 定义新的授权许可类型................................................................................32
8.4. 定义新的授权端点响应类型..........................................................................32
8.5. 定义其他错误代码......................................................................................33
9. 本机应用程序...................................................................................................34
10. 安全考量........................................................................................................35
10.1. 客户端身份验证.......................................................................................35
10.2. 客户端仿冒..............................................................................................35
10.3. 访问令牌.................................................................................................35
10.4. 刷新令牌.................................................................................................36
10.5. 授权码....................................................................................................36
10.6. 授权码重定向 URI 伪造.............................................................................36
10.7. 资源所有者密码凭据.................................................................................37
10.8. 请求机密性..............................................................................................37
10.9. 确保端点真实性.......................................................................................37
10.10. 凭据猜测攻击.........................................................................................37
10.11. 钓鱼攻击...............................................................................................37
10.12. 跨站请求伪造.........................................................................................37
10.13. 点击劫持...............................................................................................38
10.14. 代码注入和输入验证...............................................................................38
10.15. 自由重定向器.........................................................................................38
10.16. 在隐式流程中滥用访问令牌假冒资源所有者................................................39
11. IANA 考量.....................................................................................................40
11.1. OAuth 访问令牌类型注册表......................................................................40
11.1.1. 注册模板..........................................................................................40
11.2. OAuth 参数注册表...................................................................................40
11.2.1. 注册模板..........................................................................................41
11.2.2. 最初的注册表内容..............................................................................41
11.3. OAuth 授权端点响应类型注册表................................................................43
11.3.1. 注册模板..........................................................................................43
11.3.2. 最初的注册表内容..............................................................................43
11.4. OAuth 扩展错误注册表.............................................................................43
11.4.1. 注册模板..........................................................................................44
12. 参考文献........................................................................................................45
12.1. 规范性参考文件.......................................................................................45
12.2. 参考性引用文献.......................................................................................46
附录 A. 增强巴科斯-诺尔范式(ABNF)语法...........................................................47
A.1. “client_id”语法........................................................................................47
A.2. “client_secret”语法.................................................................................47
A.3. “response_type”语法...............................................................................47
A.4. “scope”语法.............................................................................................47
A.5. “state”语法..............................................................................................48
3/51
A.6. “redirect_uri”语法...................................................................................48
A.7. “error”语法.............................................................................................48
A.8. “error_description”语法..........................................................................48
A.9. “error_uri”语法.......................................................................................48
A.10. “grant_type”语法..................................................................................48
A.11. “code”语法............................................................................................48
A.12. “access_token”语法...............................................................................48
A.13. “token_type”语法..................................................................................49
A.14. “expires_in”语法...................................................................................49
A.15. “username”语法....................................................................................49
A.16. “password”语法....................................................................................49
A.17. “refresh_token”语法..............................................................................49
A.18. 端点参数语法..........................................................................................49
附录 B. 使用 application/x-www-form-urlencoded 媒体类型.................................50
附录 C. 致谢.........................................................................................................51
4/51
1. 简介
在传统的客户端-服务器身份验证模式中,客户端请求服务器上限制访问的资源(受保护资源)时,需要
使用资源所有者的凭据在服务器上进行身份验证。 资源所有者为了给第三方应用提供受限资源的访问,
需要与第三方共享它的凭据。 这造成一些问题和局限:
• 需要第三方应用存储资源所有者的凭据,以供将来使用,通常是明文密码。
• 需要服务器支持密码身份认证,尽管密码认证天生就有安全缺陷。
• 第三方应用获得的资源所有者的受保护资源的访问权限过于宽泛,从而导致资源所有者失去对资源使
用时限或使用范围的控制。
• 资源所有者不能仅撤销某个第三方的访问权限而不影响其它,并且,资源所有者只有通过改变第三方
的密码,才能单独撤销这第三方的访问权限。
• 与任何第三方应用的让步导致对终端用户的密码及该密码所保护的所有数据的让步。
OAuth 通过引入授权层以及分离客户端角色和资源所有者角色来解决这些问题。 在 OAuth 中,客户端在
请求受资源所有者控制并托管在资源服务器上的资源的访问权限时,将被颁发一组不同于资源所有者所
拥有凭据的凭据。
客户端获得一个访问令牌(一个代表特定作用域、生命期以及其他访问属性的字符串),用以代替使用
资源所有者的凭据来访问受保护资源。 访问令牌由授权服务器在资源所有者认可的情况下颁发给第三方
客户端。客户端使用访问令牌访问托管在资源服务器的受保护资源。
例如,终端用户(资源所有者)可以许可一个打印服务(客户端)访问她存储在图片分享网站(资源服
务器)上的受保护图片,而无需与打印服务分享自己的用户名和密码。 反之,她直接与图片分享网站信
任的服务器(授权服务器)进行身份验证,该服务器颁发给打印服务具体委托凭据(访问令牌)。
本规范是为 HTTP(RFC2616)协议量身定制。在任何非 HTTP 协议上使用 OAuth 不在本规范的范围之内。
OAuth 1.0 协议(RFC5849)作为一个指导性文档发布,是一个小社区的工作成果。 本标准化规范在
OAuth 1.0 的部署经验之上构建,也包括其他使用案例以及从更广泛的 IETF 社区收集到的可扩展性需求。
OAuth 2.0 协议不向后兼容 OAuth 1.0。这两个版本可以在网络上共存,实现者可以选择同时支持他们。
然而,本规范的用意是新的实现支持按本文档指定的 OAuth 2.0,OAuth 1.0 仅用于支持现有的部署。
OAuth 2.0 协议与 OAuth 1.0 协议实现细节没有太多关联。熟悉 OAuth 1.0 的实现者应该学习本文档,而
不对有关 OAuth 2.0 的结构和细节做任何假设。
1.1. 角色
OAuth 定义了四种角色:
• 资源所有者
能够许可受保护资源访问权限的实体。当资源所有者是个人时,它作为最终用户被提及。
• 资源服务器
托管受保护资源的服务器,能够接收和响应使用访问令牌对受保护资源的请求。
• 客户端
使用资源所有者的授权代表资源所有者发起对受保护资源的请求的应用程序。术语“客户端”并非特指
任何特定的的实现特点(例如:应用程序是否在服务器、台式机或其他设备上执行)。
• 授权服务器
在成功验证资源所有者且获得授权后颁发访问令牌给客户端的服务器。 授权服务器和资源服务器之间的
交互超出了本规范的范围。授权服务器可以和资源服务器是同一台服务器,也可以是分离的个体。一个
5/51
剩余50页未读,继续阅读
DonJikn
- 粉丝: 7
- 资源: 162
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
前往页