关闭

理解OAuth2.0

593人阅读 评论(0) 收藏 举报
分类:
1. 为了理解OAuth的适用场合,让我举一个假设的例子。
有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"云冲印"能够读取用户自己储存在Google上的照片。

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

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

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

4. 下图是用户通过浏览器为客户端授权的过程.



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

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




  1)用户访问Client服务器提供的需要访问Resource Server的应用.
  2)Client进行相关服务操作,这个过程需要访问Resource Server
  3)返回结果给Client服务器
  4)返回结果

  • 大小: 1.7 MB
  • 大小: 1.5 MB
0
0
查看评论

帮你深入理解OAuth2.0协议

1. 引言 如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间。是否有好办法可以避免这个问题呢?有的,听说有一些豪车的车主就不担心这个问题。豪车一般配备两种钥匙:主钥匙和泊车钥匙。当你到酒店后,只需要将泊车钥匙交给服务生,停车的事情就由服务生去处理。与主钥匙相比,这种泊车钥匙的使用功能是...
  • seccloud
  • seccloud
  • 2012-11-16 23:50
  • 83729

对OAuth 2.0最通俗易懂的理解

http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 看了好多好多,这篇文章是最通俗易懂的一篇。
  • zhenwen1994
  • zhenwen1994
  • 2015-08-31 15:50
  • 187

理解OAuth2.0

理解OAuth2.0 OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 一、应用场景 为了理解OAuth的适用场合,让我举一个假设的例子。 有一个"云冲印"的网站,可以将用户储存在Google的照片,冲...
  • CHBSRZF
  • CHBSRZF
  • 2015-08-17 09:27
  • 274

理解Oauth2.0

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 一、应用场景为了理解OAuth的适用场合,让我举一个假设的例子。 有一个”云...
  • yypsober
  • yypsober
  • 2016-06-20 14:13
  • 356

OAuth2.0认证和授权机制讲解

参考文档 : https://segmentfault.com/a/1190000005357718 https://www.tianmaying.com/tutorial/oAuth-login 第一章.OAuth2.0 介绍 OAuth认证 OAuth认证是为了做到第三方应用在未获取到...
  • remote_roamer
  • remote_roamer
  • 2016-12-28 01:08
  • 4405

OAuth 2.0系列教程

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。   OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站...
  • jayxujia123
  • jayxujia123
  • 2014-06-14 19:38
  • 1976

深入理解OAuth2.0协议

转自:http://hi.baidu.com/powerthinks/item/f1cb9b3c7a88251c9dc65efa 写的太好了,赞一个 1. 引言 如果你开车去酒店赴宴,你经常会苦于找不到停车位而耽误很多时间。是否有好办法可以避免这个问题呢?有的,听...
  • clh604
  • clh604
  • 2014-03-01 20:49
  • 1625

Oauth2.0和Yii的邂逅(以己拙见实现第三方接口权限管理)

这是一个有关第三方登录中三个身份的简单描述。oauth2.0,Yii2,rbac
  • shuzipai
  • shuzipai
  • 2017-02-15 13:12
  • 852

Oauth2.0协议及安全性改进

一、Oauth介绍摘录几篇网友的总结:1.OAuth 白话简明教程-简述2.OAuth2.0 介绍3.帮你深入理解OAuth2.0协议二、个人理解在整个Oauth认证流程过程中,共有两次重定向(即302、response.redirect),第一次是用户访问子系统的URL,由子系统重定向到SSO服务...
  • sszgg2006
  • sszgg2006
  • 2017-07-31 00:26
  • 260

OAuth2.0 的理解

OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。 本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 一、应用场景 为了理解OAuth的适用场合,让我举一个假...
  • glx490676405
  • glx490676405
  • 2017-11-11 11:38
  • 229
    个人资料
    • 访问:151819次
    • 积分:1784
    • 等级:
    • 排名:千里之外
    • 原创:138篇
    • 转载:11篇
    • 译文:0篇
    • 评论:39条
    最新评论