关于OAuth以及OAuth1.0与OAuth2.0的区别

一、       Oauth的概念

Oauth的官方简介是:

An open protocol to allow secure API authorization in a simple andstandard method from web, mobile and desktop applications.

随着大量开放平台的出现,建立在开放平台之上的各种第三方应用也在大量冒出,出对安全性和统一标准的要求,于是出现了oauth协议

简单来说,OAUTH是一种开放的协议,他能为桌面程序或者基于BS的web应用提供一种简单的标准方式去访问需要用户授权的API(ApplicationProgramming Interface)服务,而且任何第三方都可以使用OAUTH认证服务。在为第三方提供服务的过程中,他还能起到保护用户账号安全的作用。

 

二、       Oauth的发展过程

2007年发布了OAuthCore 1.0

(此版本的协议存在严重的安全漏洞,详情介绍可参考:Explaining the OAuth Session Fixation Attack

 

2009年6月发布了OAuthCore 1.0 Revision A

修复了前一版本的安全漏洞,并成为RFC5849,我们现在使用的OAuth版本多半都是以此版本为基础。

 

2010年4月发布了OAuth2.0,是OAuth协议的下一版本,但与OAuth 1.0版本互不兼容。

 

三、           Oauth的作用

在上面的给出Oauth的定义中其实就已经说明白了它的作用,但有点抽象,就拿我最近做的一个小应用来举例吧。如果我们想要做关于新浪微博的第三方应用,那么我们就可以用到微博提供给我们的一系列API,但应用这些API是需要我么先去授权验证的,这里就用到了Oauth了。而且作为第三方开发者,我们并没有得到用户的实质性的私密信息,所以说他还保护了用户账号安全。

  我们在应用Oauth的时候常常会拿他和OpenID作比较,那我们怎么去理解他们之间的区别呢?

  其实OAuth的关注点在于授权,而OpenID则侧重于证明鉴定,简单来说,我们可以认为OAuth为我们解决“用户能(想)做什么”,是“WHAT”的问题,而OpenID则为我们验证“用户是谁”,是解决“WHO”的问题。

 

四、       Oauth1.0Oauth2.0的区别

auth1.0与Oauth2.0是相互不兼容的,所以他们为我们提供了不同的授权方式:

 

 

2.0的用户授权过程有3步:

         A)用户到授权服务器,请求授权,然后返回授权码(AuthorizationCode)

         B)客户端由授权码到授权服务器换取访问令牌(access token)

         C)用访问令牌去访问得到授权的资源、

总结:获取授权码(Authorization Code)—>换取访问令牌(access_token)—>访问资源:

 

 

1.0的授权分4步,

          A)客户端到授权服务器请求一个授权令牌(requesttoken&secret)

         B)引导用户到授权服务器请求授权

         C)用访问令牌到授权服务器换取访问令牌(accesstoken&secret)

         D)用访问令牌去访问得到授权的资源

总结:请求授权令牌(request token&secret)—>换取访问令牌(access token&secret)—>访问资源

 

 

1.0协议每个token都有一个加密,2.0则不需要。这样来看1.0似乎更加安全,但是2.0要求使用https协议,安全性也更高一筹。

 

2.0充分考虑了客户端的各种子态,因而提供了多种途径获取访问令牌,有:授权码、

客户端私有证书、资源拥有者密码证书、刷新令牌等方式,而且验证过程更为简洁。

相比之下 1.0只有一个用户授权流程。

 

  在了解OAuth的过程中参考了很多网站的资料以及前辈的总结,在这里把自己的总结和感悟写出来,也希望和大家分享、讨论,一起进步。

相关参照网站:

http://hueniverse.com/oauth/ 

http://huoding.com/2010/10/10/8

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值