版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、OAuth认证技术成都Mo宝网络科技有限公司说明 本次分享的目的是让大家了解OAuth认证的概念和流程,对于中间涉及到的技术细节,不做过多介绍,有兴趣的同学可以下来再跟我交流。目录OAuth的产生背景 1什么是OAuth 2OAuth的使用 3OAuth和Openid的比较 4OAuth的产生背景 传统互联网时代,各个网站和服务之间是封闭的,数据无法进行交互。随着互联网技术的迅猛发展、系统之间的相互协作日益增多,开放与共享数据的需求不断增加,互联网服务之间的整合已经成为必然趋势,一个通过自身开放平台来实现数据互通甚至用户共享的时代已经来临。把网站的服务封装成一系列计算机易识别的数据接口开放出去
2、,供第三方开发者使用,这种行为就叫做Open API,提供开放API 的平台本身就被称为开放平台。 2007 年5 月份,Facebook 宣布改版,最早提出了开放平台的概念,正式从一个社交网站向一个社交应用平台转型。至此,开放平台发展迅速,成为互联网发展的趋势,也是一种革命性的发展模式。OAuth的产生背景 国内外已经有很多的公司开发了自己的开放平台,Facebook、Twitter、腾讯、新浪微博、人人网,它们用户规模大、技术实力强,为第三方提供了一整套自成体系、纷繁复杂的“开放API”。通过开放平台,网站不仅能提供对Web 网页的简单访问,还可以进行复杂的数据交互,允许第三方开发者利用其
3、资源开发复杂的应用,既丰富自身网站应用,为用户提供更好的服务,逐步建立起一个服务完备的网络社会,也为第三方连接的网站带来更多的用户。开放平台迅速成为互联网发展的趋势。 开放平台的核心问题在于用户验证和授权。对于服务提供商来说,一般不会希望第三方直接使用用户名和密码来验证用户身份,除非双方具有很强的信任关系。OAuth 协议正是为了解决服务整合时“验证和授权”这一根本问题而产生的,具有同样认证功能的协议还有Openid。OAuth的产生背景案例分析OAuth的产生背景如果一个用户拥有两项服务:一项服务是图片在线存储服务A,另一个是图片在线打印服务B。如下图所示。由于服务A与服务B是由两家不同的服
4、务提供商提供的,所以用户在这两家服务提供商的网站上各自注册了两个用户,假设这两个用户名各不相同,密码也各不相同。当用户要使用服务B打印存储在服务A上的图片时,用户该如何处理?方法一:用户可能先将待打印的图片从服务A上下载下来并上传到服务B上打印,这种方式安全但处理比较繁琐,效率低下OAuth的产生背景方法二:用户将在服务A上注册的用户名与密码提供给服务B,服务B使用用户的帐号再去服务A处下载待打印的图片,这种方式效率是提高了,但是安全性大大降低了,服务B可以使用用户的用户名与密码去服务A上查看甚至篡改用户的资源。很多公司和个人都尝试解决这类问题,包括Google、Yahoo、Microsoft
5、,这也促使OAUTH项目组的产生。OAuth是由Blaine Cook、ChrisMessina、Larry Halff 及David Recordon共同发起的,目的在于为API访问授权提供一个开放的标准。什么是OAuthOAuth是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。
6、这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息。概述什么是OAuth简单:不管是OAUTH服务提供者还是应用开发者, 都很容易于理解与使用;安全:没有涉及到用户密钥等信息,更安全更灵活;开放:任何服务提供商都可以实现OAUTH,任何软 件开发商都可以使用OAUTH特点什么是OAuth OAuth 为客户端提供了一种代表资源拥有者访问受保护资源的方法。在客户端访问受保护资源之前,它必须先从资源拥有者获取授权(访问许可),然后用访问许可交换访问令牌(Access Token,包含许可的作用域、持续时间和其它属性等信息)。客户端通过向资源服务器出示访问令牌来访问受保护资
7、源。原理OAuth的核心工作流程什么是OAuth原理OAuth1.0OAuth1.0主要流程是四步骤:1、获取未授权的Request Token2、请求用户授权Request Token3、使用授权后的Request Token换取Access Token4、使用 Access Token 访问或修改受保护资源。什么是OAuth原理OAuth1.0什么是OAuth1.0的缺陷:1、oauth1.0对手机客户端,移动设备等非server第三方的支持不好。是因为oauth1.0将多种流程合并成了一种,而事实证明,这种合并的流程体验性非常差。2、oauth1.0的三步认证过程比较繁琐和复杂,对第三方
8、开发者增加了极大的开发难度。3、oauth1.0的加密需求过于复杂,第三方开发者使用oauth之前需要花费精力先实现oauth1.0的加密算法。4、oauth1.0生成的access_token要求是永久有效的,这导致的问题是网站的安全性和破坏网站的架构。原理OAuth1.0什么是OAuthoauth2.0针对1.0的各种问题提供了解决方法:1、 oauth2.0提出了多种流程,各个客户端按照实际情况选择不同的流程来获取access_token。这样就解决了对移动设备等第三方的支持,也解决了拓展性的问题 2 、oauth2.0删除了繁琐的加密算法。利用了https传输对认证的安全性进行了保证
9、3、 oauth2.0的认证流程一般只有2步,对开发者来说,减轻了负担 4 、oauth2.0提出了access_token的更新方案,获取access_token的同时也获取refresh_token, access_token是有过期时间的,refresh_token的过期时间较长,这样能随时使用refresh_token对access_token进行更新。原理OAuth2.0什么是OAuth原理OAuth2.0什么是OAuth原理OAuth2.0Oauth2.0根据授权方式和客户端状态的不同对应不一样的实现方式。什么是OAuth原理OAuth2.0Webserver方式适用场景:Web
10、Server子态适用于有能力与终端用户的user-agent(通常是浏览器)交互并能够从授权服务器接收(通过重定向)请求(即有能力担当HTTP服务器的角色)的客户端。什么是OAuth原理OAuth2.0什么是OAuth原理OAuth2.0userAgent方式适用场景:Web Server子态适用于有能力与终端用户的user-agent(通常是浏览器)交互并能够从授权服务器接收(通过重定向)请求(即有能力担当HTTP服务器的角色)的客户端 ,典型的例子是用诸如JavaScript语言编写并运行在浏览器的程序。这些客户端不能保存客户端私有证书,并且客户端的验证基于user-agent的同源策略。
11、说明:在其它子态中,客户端对于终端用户的授权和访问令牌使用分开的不同请求来完成,而与之不同的是,在user-agent子态中,客户端以HTTP重定向的方式在终端用户授权请求的结果中获取到访问令牌。客户端请求授权服务器将user-agent重定向到另一个web服务器或user-agent能访问到的本地资源,而且user-agent有能力从响应信息中提取出访问令牌并传给客户端。什么是OAuth原理OAuth2.0什么是OAuth原理OAuth2.0原生程序方式适用场景:原生程序方式适用于作为原生代码运行在终端用户计算机或移动设备上的客户端。这些客户端通常有能力与终端用户的user-agent交互(
12、或嵌入user-agent)。什么是OAuth原理OAuth2.0基于不同的需求和期望的终端用户体验,原生程序客户端可以有三种方式实现:外部启用一个user-agent;内嵌一个user-agent;直接要求用户输入用户名和密码。什么是OAuth原理OAuth2.0优缺点:外部浏览器可能会提高完成效率,因为终端用户可能已经登录过了而不需要重新进行身份验证。嵌入的user-agent通常能提供更好的用户流程,因为它不必切换上下文并打开新窗口。但嵌入的user-agent对安全提出了挑战,因为用户在一个无法辨别的窗口之中进行身份验证,而不像很多user-agent那样能提供可视化的保护。第三种方式
13、,实现起来最简单,但它将终端用户的密码直接交给了第三方客户端,而客户端不得不用明文存储密码,所以它要求客户端和认证服务方有很强的信任关系。什么是OAuth原理OAuth2.0什么是OAuth原理OAuth2.0刷新令牌OAuth2.0引入刷新令牌的方式重新获取访问令牌。访问令牌的生命周期通常比资源拥有者授予的要短一些。当分发一个访问令牌时,授权服务器可以同时传回一个刷新令牌,在当前访问令牌超时后,客户端可以用这个刷新令牌重新获取一个访问令牌。当请求新的访问令牌时,刷新令牌担当起访问许可的角色。使用刷新令牌,不再需要再次与资源拥有者交互,也不需要存储原始的访问许可来获得访问令牌和刷新令牌。注:可
14、以使用刷新令牌也可以直接使用客户端的私有证书什么是OAuth原理OAuth2.0什么是OAuth原理OK,原理介绍完毕,大家有何问题?OAuth的使用说明:本文提出的OAuth使用方式是基于2.0协议,只对OAuth2.0 最核心的工作流程进行设计,即获取Access Token 的过程。OAuth的使用客户端设计OAuth的使用服务端设计服务器端的数据存储方案OAuth2.0 机制的核心工作流程,大部分信息,如APP 信息、用户和APP 之间的授权关系、Access Token等,需要永久性存储,存储在数据库中。一些不需要永久存储的信息,如临时授权码,只使用一次,而且,在很短的时间内就要使其
15、失效,就没有必要存储在数据库之中,可存储在譬如memcached 等缓存系统中,即提高了系统的处理速度,又减少了数据库压力。OAuth的使用服务端设计数据库表结构设计客户端要先注册一个应用,获取该应用的APPID和APPSECRET,应用的详细信息存储在数据表中,如下图所示:OAuth的使用服务端设计用户授权信息表用来保存授权成功的访问令牌。OAuth的使用服务端设计OAuth和Openid的比较OpenID 是一个以用户为中心的数字身份识别框架。OpenID 的创建基于这样一个概念:我们可以通过 URI (又叫 URL 或网站地址)来认证一个网站的唯一身份,同理,我们也可以通过这种方式来作为用户的身份认证。由于URI 是整个网络世界的核心,它为基于URI的用户身份认证提供了广泛的、坚实的基础。Openid是什么OAuth和Openid的比较OAuth和Openid同为认证机制,但它们的侧重点不一样。OAuth关注的授权,即:“用户能做什么” ;而OpenID关注的是证明,即:“用户是谁”。下面就分别来举例说明两者的功能。OAuth和Openid的比较OpenID 用户希望访问其在 的账户 提示用户输入他/她/它的OpenID 用户给出了他的OpenID,比如说” ” 跳转到了用户的OpenID提供商“ ” 用户在” ”(Ope
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机电设备销售员工工作总结
- 2025-2030全球无线智能振动监测传感器行业调研及趋势分析报告
- 2025-2030全球FinFET 3D晶体管行业调研及趋势分析报告
- 2025-2030全球无人潜水器用于海上石油和天然气行业行业调研及趋势分析报告
- 2025-2030全球手机支付安全行业调研及趋势分析报告
- 2025年全球及中国纳米粒度及Zeta电位分析仪行业头部企业市场占有率及排名调研报告
- 2025-2030全球高效粘泥剥离剂行业调研及趋势分析报告
- 2025区域代理合同模板范本
- 供水工程承包合同
- 音响设备购销合同范本
- 输变电工程监督检查标准化清单-质监站检查
- 2024-2025学年北京海淀区高二(上)期末生物试卷(含答案)
- 【超星学习通】马克思主义基本原理(南开大学)尔雅章节测试网课答案
- 2024年中国工业涂料行业发展现状、市场前景、投资方向分析报告(智研咨询发布)
- 化工企业重大事故隐患判定标准培训考试卷(后附答案)
- 工伤赔偿授权委托书范例
- 食堂餐具炊具供货服务方案
- 员工安全健康手册
- 2024化工园区危险品运输车辆停车场建设规范
- 自然科学基础(小学教育专业)全套教学课件
- 华为客服制度
评论
0/150
提交评论