理解OAuth2.0

[color=red]1. 为了理解OAuth的适用场合,让我举一个假设的例子。[/color]
有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"云冲印"能够读取用户自己储存在Google上的照片。

如何让云冲印能够访问位于Google上的照片呢?传统方法是,用户将自己的Google用户名和密码,告诉"云冲印",后者就可以读取用户的照片了。这样的做法有很多的缺点,比如:
a) 云冲印有了访问Google全部照片的权限,而实际情况是我们可能仅仅想打印Google中的某一张照片
b) 如果云冲印的网站被黑了,那么保存在云冲印网站上的能够访问Google照片的用户名和密码也就不安全了,但实际上Google网站一直是安全的.
以上只是这种做法众多缺点中的两个缺点,显然这种做法不安全.

[color=red]2. 为此有了OAuth2.0协议.OAuth2.0协议的全程为Open Standard for Authentication.[/color]他的思路是在云冲印和Google之间添加一个授权层,授权层为云冲印颁发一个可以访问Google的AccessToken,而这个行为的授权需要Google照片的拥有者来完成.OAuth2.0有4种授权模式,我们以最复杂的授权码模式为例,来说明OAuth2.0的工作流程.

[color=red]3. 在讲解OAutn2.0的工作流程之前,先来看几个专用名词.[/color]
a)Client:第三方应用程序,本文中又称"客户端"(client),在本文中是"云冲印"应用。
b)Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。
c)User Agent:用户代理,本文中就是指浏览器。
d)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。
e)Resource Owner:资源所有者,本文中又称"用户"(user)。

[color=red]4. 下图是用户通过浏览器为客户端授权的过程.[/color]

[img]http://dl2.iteye.com/upload/attachment/0118/7734/2aad9c1d-1c20-38c1-81cc-a9487c48dcdf.jpg[/img]

1)用户点击授权按钮
2)Client服务器重定向请求到权限服务器,同时将Client相关信息以及请求授权的相关信息以及重定向服务器的地址(这里是指Client地址)作为参数发送给权限服务器.
3)权限服务器返回授权页面,此页面需要用户点击确定
4)用户确定授权
5)权限服务器重定向到Client服务器并将授权码作为参数传递给Client服务器.
6)Client服务器拿着授权码向权限服务器请求AccessToken
7)权限服务器进行验证后返回AccessToken
8]Client服务器返回授权成功页面.

[color=red]5. 用户为Client服务器授予访问某个Resource Server的临时权限后,就可以直接使用Client了[/color].即可以直接使用云冲印打印位于Google上的招聘了,这个过程,用户不需要感知了.因为他已经授予Client服务器服务Google服务器的权限了.过程如下图:

[img]http://dl2.iteye.com/upload/attachment/0118/7736/d15fd42b-a0b0-343b-bec4-1b7b3085548f.jpg[/img]


1)用户访问Client服务器提供的需要访问Resource Server的应用.
2)Client进行相关服务操作,这个过程需要访问Resource Server
3)返回结果给Client服务器
4)返回结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值