[轉載] 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)客戶端使用獲取的訪問令牌訪問存放在服務提供方上的受保護的資源。

相關文章
相關標籤/搜索