oauth2.0协议的研究与实践(源码)【字数:9349】

摘 要OAuth 2.0 是由互联网工程任务组于 2012 年 10 月发表在 RFC-6749 规范文档中定义的认证授权协议,是一种基于 HTTP 重定向实现的开放授权框架。它允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。本文先简单介绍 OAuth 2.0 协议基本概念、主要流程和关键步骤,讨论了在开发 OAuth 2.0 应用时的注意事项,接着在充分阅读和理解 RFC-6749 规范和参考国内外主流网站的 OAuth 2.0 实现之上,设计并实现了一个基于 OAuth 2.0 协议的开放授权应用,证实 OAuth 2.0 协议的可用性和可靠性,并指出了常规 OAuth 2.0 应用在登录流程中的不足之处,给出优化方案,给予实践验证。
Key words:RFC6479;OAuth 2.0;Authentication;Authorization 目 录
第一章 绪论 1
1.1背景与意义 1
1.2本文的工作 1
1.3论文的组织结构 1
第二章 OAuth 2.0 协议介绍 3
2.1协议简介 3
2.2协议角色 3
2.3术语解释 3
2.4主要流程 4
2.5关键步骤 5
2.5.1 Authorization Code Grant流程 5
2.5.2 Implicit Grant 流程 6
2.6颁发令牌 8
2.7注意事项 8
第三章 OAuth 2.0 协议实现 10
3.1基本思路 10
3.2应用架构 11
3.3应用设计 11
3.3.1数据库设计 11
3.3.2授权码与令牌的存储设计 12
3.3.3接口设计 13
3.4 应用配置 15
3.4.1 hosts配置 15
3.4.2 Nginx配置 15
3.4.3客户端注册 18
3.4.4用户注册 18
3.5实现过程  *好棒文|www.hbsrm.com +Q: ^351916072* 
19
3.6实现效果 20
3.7存在的问题 22
第四章 OAuth 2.0 应用优化 23
4.1问题产生的原因 23
4.2优化方案 23
4.3具体实现 24
4.3.1客户端建立WebSocket连接 24
4.3.2服务端建立WebSocket连接 25
4.4优化效果 26
第五章 结束语 28
致 谢 29
参考文献 30
第一章 绪论
1.1背景与意义
随着互联网行业的蓬勃发展,网络站点和应用 APP 的越来越多,用户在不同应用之间的使用上出现了一个问题:为了使用不同厂商的应用,如贴吧、淘宝和 QQ,用户必须为每个应用单独注册帐号。在注册少数常用应用的帐号之后,用户还必须为一些低频使用的应用注册帐号。这繁琐应用使用现状和非人性化的用户体验,使得互联网领域中需要出现一个可以连接不同应用用户体系的可靠可行的规范协议,这就是 OAuth 协议。
OAuth 2.0 于 2012 年 10 月正式发布,它作为 OAuth 1.0 协议的下一版本但却并不向下兼容 OAuth 1.0 协议。OAuth 2.0 协议关注客户端开发的简易性,同时为移动设备、Web应用、桌面应用等多种客户端提供认证授权服务。
目前,国内外各大主流互联网公司如腾讯、新浪、Facebook、Google 等,均已支持 OAuth 2.0 协议。通过在其开发者平台上提供基于 OAuth 2.0 的开放授权 OpenApi ,由客户端开发者调用,便可以向市场上的其它中小型应用分享其海量的用户数据。通过这种方式,不同厂家不同类型的应用只要遵循 OAuth 2.0 协议流程,就可以引入各大主流网站的用户资源,简化登录流程,优化用户体验,从而提高应用的可用性和用户的活跃度。
本课题着手于 RFC6479 规范文档,研究 OAuth 2.0 协议的工作原理,并参考各大主流网站 OAuth 2.0 协议的实现,付诸实践证实 OAuth 2.0 协议的可用性和可靠性,期望总结并得出一套开发 OAuth 2.0 应用的最佳实践。
1.2本文的工作
基于以上背景和意义,本文完成了以下工作:
1、阅读 RFC6479 规范文档,提炼 OAuth 2.0 基本概念、主要流程、关键步骤、注意事项等内容。
2、比较各大主流网站的 OAuth 2.0 实现,总结并得出 OAuth 2.0 协议的最佳实践。
3、设计并实现一个基于 OAuth 2.0 协议的认证授权应用,证实 OAuth 2.0 协议的可用性和可靠性。
4、基于第三步中的应用,引入 HTML5 规范中的 WebSocket 技术,优化标准 OAuth 2.0 应用中的登录流程。
1.3论文的组织结构
第一章 绪论。主要介绍了 OAuth 2.0 协议来源和发展,并交代了本文的工作内容。
第二章 OAuth 2.0 协议介绍。主要依据 RFC6479 规范文档,简单介绍了 OAuth 2.0 的相关概念、角色、术语的解释、以及主要流程和关键步骤的解读,最后总结了 OAuth 2.0 应用开发的注意事项。
第三章 OAuth 2.0 协议实现。主要根据 OAuth 2.0 协议主流形式的授权许可,设计并实现了一个基于用户信息为中心数据的认证授权服务。内容包含了应用的设计基本思路、部署架构、实现过程及运行效果的截图,并根据应用的实现现状,找出常规 OAuth 2.0 应用存在的问题。
第四章 OAuth 2.0 应用优化。主要为解决常规 OAuth 2.0 应用中存在的问题,提出一种切实可行的优化方案,并以第三章中实现的应用为例,实践证明此种优化方案的可行性。
第五章 结束语。总结了本文对 OAuth 2.0 协议展开的研究和实践,并以概括性的话语描述。
第二章 OAuth 2.0 协议介绍
2.1协议简介
OAuth 2.0 授权框架允许第三方应用,代表资源所有者通过合法地协调资源所有者和 HTTP 服务之间交互,或者仅代表第三方应用本身,对 HTTP 服务进行有限地访问。它允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
OAuth 2.0 协议允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth 2.0 协议让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/338.html

好棒文