1. 程式人生 > >OAuth2.0認證和授權原理

OAuth2.0認證和授權原理

avi b2c 用戶授權 服務商 包括 facebook 自己的 borde 技術分享

什麽是OAuth授權? 一、什麽是OAuth協議 OAuth(開放授權)是一個開放標準。 允許第三方網站在用戶授權的前提下訪問在用戶在服務商那裏存儲的各種信息。 而這種授權無需將用戶提供用戶名和密碼提供給該第三方網站。 OAuth允許用戶提供一個令牌給第三方網站,一個令牌對應一個特定的第三方網站,同時該令牌只能在特定的時間內訪問特定的資源。 二、OAuth的原理和授權流程 OAuth的認證和授權的過程中涉及的三方包括: 服務商:用戶使用服務的提供方,一般用來存消息、儲照片、視頻、聯系人、文件等(比如Twitter、Sina微波等)。 用 戶:服務商的用戶 第三方:通常是網站,該網站想要訪問用戶存儲在服務商那裏的信息。 比如某個提供照片打印服務的網站,用戶想在那裏打印自己存在服務商那裏的網絡相冊。 在認證過程之前,第三方需要先向服務商申請第三方服務的唯一標識。 OAuth認證和授權的過程如下: 1、用戶訪問第三方網站網站,想對用戶存放在服務商的某些資源進行操作。 2、第三方網站向服務商請求一個臨時令牌。 3、服務商驗證第三方網站的身份後,授予一個臨時令牌。 4、第三方網站獲得臨時令牌後,將用戶導向至服務商的授權頁面請求用戶授權,然後這個過程中將臨時令牌和第三方網站的返回地址發送給服務商。 5、用戶在服務商的授權頁面上輸入自己的用戶名和密碼,授權第三方網站訪問所相應的資源。 6、授權成功後,服務商將用戶導向第三方網站的返回地址。 7、第三方網站根據臨時令牌從服務商那裏獲取訪問令牌。 8、服務商根據令牌和用戶的授權情況授予第三方網站訪問令牌。 9、第三方網站使用獲取到的訪問令牌訪問存放在服務商的對應的用戶資源。 三、目前支持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

文件來源於:http://www.6zou.net/tech/what_is_oauth.html

所謂OAuth(即Open Authorization,開放授權),它是為用戶資源授權提供了一種安全簡單的標準,也就是說用戶在訪問第三方web或應用的時候,第三方不會知道用戶的信息(登錄密碼等),現在基本都支持OAuth2.0版本了。

首先來看看我們在第三方使用oauth流程如下:

第一步:用戶登錄第三方網站,使用qq登錄。

技術分享

第二步:點擊登錄後,會跳到qq平臺提示輸入用戶名和密碼。

技術分享

第三步:如果用戶名和密碼正確,會提示是否接受授權,如果授權成功,第三方網站就能訪問你的資源了,qq頭像、用戶名等

技術分享

認證和授權過程(包括三方)

  1、服務提供方,用戶使用服務提供方來存儲受保護的資源,如照片,視頻,聯系人列表。

  2、用戶,存放在服務提供方的受保護的資源的擁有者。

  3、客戶端,要訪問服務提供方資源的第三方應用,通常是網站。在認證過程之前,客戶端要向服務提供者申請客戶端標識。

技術分享

用戶訪問客戶端的網站,想操作用戶存放在服務提供方的資源。

  客戶端向服務提供方請求一個臨時令牌。

  服務提供方驗證客戶端的身份後,授予一個臨時令牌。

  客戶端獲得臨時令牌後,將用戶引導至服務提供方的授權頁面請求用戶授權。在這個過程中將臨時令牌和客戶端的回調連接發送給服務提供方。

  用戶在服務提供方的網頁上輸入用戶名和密碼,然後授權該客戶端訪問所請求的資源。

  授權成功後,服務提供方引導用戶返回客戶端的網頁,並返回已授權的臨時憑證。

  客戶端根據已授權的臨時令牌從服務提供方那裏獲取訪問令牌。

  服務提供方根據臨時令牌和用戶的授權情況授予客戶端訪問令牌。

  客戶端使用獲取的訪問令牌訪問該用戶存放在服務提供方上的受保護的資源。(客戶端只能訪問給予它授權的用戶的資源信息)

來源: http://www.phpddt.com/%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91/oauth-2.html

OAuth2.0認證和授權原理