[转载] OAuth2.0认证和受权原理

转载自http://www.tuicool.com/articles/qqeuE3html

什么是OAuth受权? 

1、什么是OAuth协议web

OAuth(开放受权)是一个开放标准,容许第三方网站在用户受权的前提下访问在用户在服务商那里存储的各类信息,而这种受权无需将用户的用户名和密码提供给该第三方网站。安全

OAuth容许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定的时间内访问特定的资源。网络

2、OAuth的原理和受权流程

OAuth的认证和受权的过程当中涉及的三方包括:网站

  • 服务商:用户使用服务的提供方,通常用来存消息、储照片、视频、联系人、文件等(好比Twitter、新浪微博等);
  • 用  户:服务商的用户;
  • 第三方:一般是网站,该网站想要访问用户存储在服务商那里的信息;

好比某个提供照片打印服务的网站,用户想在那里打印本身存在服务商那里的网络相册。ui

在认证过程以前,第三方须要先向服务商申请第三方服务的惟一标识。.net

OAuth认证和受权的过程以下:3d

一、用户访问第三方网站,想对用户存放在服务商的某些资源进行操做。视频

二、第三方网站向服务商请求一个临时令牌。htm

三、服务商验证第三方网站的身份后,授予一个临时令牌。

四、第三方网站得到临时令牌后,将用户导向至服务商的受权页面请求用户受权,而后这个过程当中将临时令牌和第三方网站的返回地址发送给服务商。

五、用户在服务商的受权页面上输入本身的用户名和密码,受权第三方网站访问所相应的资源。

六、受权成功后,服务商将用户导向第三方网站的返回地址。

七、第三方网站根据临时令牌从服务商那里获取访问令牌。

八、服务商根据令牌和用户的受权状况授予第三方网站访问令牌。

九、第三方网站使用获取到的访问令牌访问存放在服务商的对应的用户资源。

3、目前支持OAuth的网站有哪些?
  • t.sina.com.cn
  • t.qq.com
  • t.sohu.com
  • t.163.com
  • www.douban.com
  • www.twitter.com
  • www.facebook.com
  • Google Buzz

所谓OAuth(即Open Authorization,开放受权),它是为用户资源受权提供了一种安全简单的标准,也就是说用户在访问第三方web或应用的时候,第三方不会知道用户的信息(登陆密码等),如今基本都支持OAuth2.0版本了。

首先来看看咱们在第三方使用oauth流程以下:

第一步:用户登陆第三方网站,使用qq登陆。

第三方使用oauth流程1

第二步:点击登陆后,会跳到qq平台提示输入用户名和密码。

第三方使用oauth流程2

第三步:若是用户名和密码正确,会提示是否接受受权,若是受权成功,第三方网站就能访问你的资源了,qq头像、用户名等。

第三方使用oauth流程3

认证和受权过程(包括三方)

一、服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。

二、用户,存放在服务提供方的受保护的资源的拥有者。

三、客户端,要访问服务提供方资源的第三方应用,一般是网站。在认证过程以前,客户端要向服务提供者申请客户端标识。

oauth2.0认证和受权原理       

(1)用户访问客户端的网站,想操做用户存放在服务提供方的资源。

(2)客户端向服务提供方请求一个临时令牌。

(3)服务提供方验证客户端的身份后,授予一个临时令牌。

(4)客户端得到临时令牌后,将用户引导至服务提供方的受权页面请求用户受权。在这个过程当中将临时令牌和客户端的回调链接发送给服务提供方。

(5)用户在服务提供方的网页上输入用户名和密码,而后受权该客户端访问所请求的资源。

(6)受权成功后,服务提供方引导用户返回客户端的网页。

(7)客户端根据临时令牌从服务提供方那里获取访问令牌。

(8)服务提供方根据临时令牌和用户的受权状况授予客户端访问令牌。

(9)客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。

相关文章
相关标签/搜索