日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

最開始接觸 OAuth2.0 的時候,經(jīng)常將它和 SSO單點登錄搞混。后來因為工作需要,在項目中實現(xiàn)了一套SSO,通過對SSO的逐漸了解,也把它和OAuth2.0區(qū)分開了。所以當時自己也整理了一篇文章 SSO單點登錄三種情況的實現(xiàn)方式詳解_跡憶客 有興趣的小伙伴可以看一下

最近需要經(jīng)常和各大電商平臺進行對接,所以又和OAuth2.0重逢了。因此這里再次對OAuth2.0的原理及實現(xiàn)方式進行一個梳理,希望通過這套教程能夠幫到大家。對于技術(shù)類的文章,這引言是有點過長了。好了下面我們進入正題。

什么是 OAuth2.0

OAuth 是一種開放的授權(quán)協(xié)議,它是目前最流行的授權(quán)機制。它允許將存儲在一個站點上的資源共享到另一個站點,而無需使用該站點的憑據(jù)。

這類定義一般都比較抽象,要理解起來不是太容易。所以這里我們通過一個實際應用的類比來說明一下這個場景,你會發(fā)現(xiàn),其實OAuth2.0的原理并不復雜。

首先,假設(shè)我在微信上注冊了賬號,然后加了一些好友,并且有一些聊天記錄。

然后,我正在訪問一個網(wǎng)站/應用。這里假設(shè)正在訪問 www.jiyik.com 。這個網(wǎng)站有一項功能是可以獲取微信號上的好友和聊天,然后對這些信息進行一個統(tǒng)計分析的功能(當然,本站是沒有這項功能的)。

個人感覺這項功能不錯,就想使用它。有一種方式是我可以把個人的微信賬號和密碼告訴這個應用。應用可以通過賬號密碼獲取到好友信息和聊天記錄。但是這樣我感覺很不安全,如果我以后不想再繼續(xù)使用了,那我還得再去修改賬號和密碼。那樣就會很麻煩了。所以這里就需要一種方式可以使得我將一些權(quán)限授權(quán)給該網(wǎng)站,使其可以不用賬號和密碼就可以獲取到這些信息。 這種授權(quán)方式就是 OAuth2.0。當我不再想使用該功能的時候,我就可以把權(quán)限收回或者使授權(quán)失效。

所以說一個完整的OAuth2.0 的流程需要涉及到三個實體。

帶你全面了解 OAuth2.0

OAuth2.0原理示例

  • 資源服務(wù)商 (微信,google,F(xiàn)acebook等)
  • 第三方網(wǎng)站/應用
  • 用戶

當有另一個第三方的網(wǎng)站要使用微信賬號登錄其系統(tǒng)時,同樣我們也可以通過授權(quán)的方式登錄這個第三方的網(wǎng)站。這樣就實現(xiàn)了同一個微信賬號可以多個不同的網(wǎng)站進行登錄。這也是一種單點登錄,這也是為什么最初經(jīng)常會將其和SSO單點登錄搞混的原因。

通過上面的場景,我們大概也能清楚OAuth2.0的基本的原理了。下面我們通過整體介紹一下其架構(gòu),來更深入的了解其工作原理。

OAuth2.0 架構(gòu)

帶你全面了解 OAuth2.0

OAuth2.0-認證架構(gòu)

整個的流程是這樣的。

一、 首先,用戶使用 Google、微信 等第三方應用程序訪問資源。

二、 第三方網(wǎng)站會帶著客戶端ID和客戶端密鑰重定向到資源服務(wù)的授權(quán)登錄界面。

三、 用戶會接收到一個Google或微信的授權(quán)登錄界面。用戶需要在該界面進行授權(quán)。

四、 用戶使用身份驗證應用程序登錄。客戶端 ID 和客戶端密鑰對于授權(quán)服務(wù)器上的客戶端應用程序是唯一的。

五、 身份驗證服務(wù)器使用授權(quán)代碼將用戶重定向到重定向統(tǒng)一資源標識符 (URI)。這個地址是第三方網(wǎng)站在接入資源服務(wù)的認證服務(wù)時提交給認證服務(wù)的,當用戶授權(quán)成功后,會被重定向到該網(wǎng)址。

六、 用戶訪問位于客戶端應用程序中重定向 URI 的頁面,該頁面此時會帶有一個用于驗證的Code。

七、 客戶端應用程序?qū)@得身份驗證Code、客戶端 ID 和客戶端密鑰,并將它們發(fā)送到授權(quán)服務(wù)器。

八、 身份驗證應用程序向客戶端應用程序返回訪問令牌。

九、 一旦客戶端應用程序獲得訪問令牌,用戶開始使用客戶端應用程序訪問資源所有者的資源。

整個OAuth2.0的流程就是這樣的。這其中會涉及到一些HTTP的知識點,關(guān)于HTTP可以參考我們的 HTTP教程。

OAuth2.0會涉及到很多術(shù)語和概念,下面我們對這些術(shù)語概念進行一些解釋。

術(shù)語

驗證

身份驗證是識別一個用戶的過程,通常是基于用戶個人的用戶名和密碼。通過用戶名和密碼來驗證該用戶是否是一個合法的資源持有者。

聯(lián)合身份驗證

許多第三方網(wǎng)站/應用都有自己的用戶名和密碼。某些應用程序依賴于其他服務(wù)來驗證用戶的身份。聯(lián)合身份管理系統(tǒng)提供對多個系統(tǒng)的單一訪問。這稱為聯(lián)合身份驗證。

授權(quán)

授權(quán)是允許某人做某事的過程。它需要有效用戶的身份來檢查該用戶是否被授權(quán)。

委托授權(quán)

委托授權(quán)是將自己的憑據(jù)提供給其他用戶以代表該用戶執(zhí)行某些操作的過程。

角色

OAuth 定義了以下角色

帶你全面了解 OAuth2.0

OAuth2.0 角色

  • 資源所有者 - 資源所有者被定義為能夠授予訪問其在資源服務(wù)器上托管的自己數(shù)據(jù)的能力的實體。當資源所有者是個人時,稱為最終用戶。
  • 客戶端應用程序 - 客戶端是一個應用程序,它發(fā)出受保護的資源請求以代表資源所有者執(zhí)行操作。
  • 資源服務(wù)器 - 資源服務(wù)器是可用于訪問用戶信息的 API 服務(wù)器。
  • 認證服務(wù)器 - 認證服務(wù)器從資源所有者那里獲得許可并將訪問令牌分發(fā)給客戶端,以訪問由資源服務(wù)器托管的受保護資源。

Web 服務(wù)器

Web 服務(wù)器是一個計算機系統(tǒng),它使用 HTTP協(xié)議 將網(wǎng)頁傳送給用戶。只要應用程序想要訪問資源服務(wù)器,客戶端ID和密鑰就存儲在web應用程序服務(wù)器上。將客戶端ID和密鑰存儲在 Web 應用程序服務(wù)器上的目的是保密。

帶你全面了解 OAuth2.0

客戶端 Web 應用程序服務(wù)器

在上圖中,資源所有者允許機密客戶端訪問托管在資源服務(wù)器上的數(shù)據(jù),其中客戶端 ID 和密鑰保存在服務(wù)器上并且是保密的。

客戶端 ID 和密鑰對于授權(quán)服務(wù)器上的客戶端應用程序是唯一的。

資源服務(wù)器是一個服務(wù)器,它承載著 Google、微信等資源。這些資源存儲在資源服務(wù)器上,供客戶端應用程序訪問,資源所有者擁有這些資源。

然后,授權(quán)服務(wù)器使用客戶端 Web 應用程序訪問資源所有者的資源。


用戶代理

用戶代理應用程序由用戶設(shè)備中的客戶端應用程序使用,它可以是一個腳本語言,例如在瀏覽器中運行的 JAVAScript。所以說我們可以將用戶代理應用程序存儲在 Web 服務(wù)器上。

下圖顯示了客戶端用戶代理應用程序的架構(gòu)。

帶你全面了解 OAuth2.0

OAuth2.0 客戶端用戶代理應用程序的架構(gòu)

一、 首先,用戶使用 Google、微信 等身份驗證應用程序訪問資源所有者的資源。

二、 接下來,用戶應用程序提供客戶端 ID 和客戶端密鑰,從而登錄到授權(quán)服務(wù)器。

三、 然后,用戶代理應用程序提供一個在瀏覽器中運行的 JavaScript 應用程序?qū)嵗㈡溄拥?Web 服務(wù)器。

四、 授權(quán)服務(wù)器允許使用客戶端憑據(jù)從資源服務(wù)器訪問資源。

五、 資源服務(wù)器包含由資源所有者擁有的資源。


本機應用程序

本機應用程序可以用作桌面或手機應用程序的實例,它使用資源所有者憑據(jù)。它是安裝在資源所有者設(shè)備上的客戶端應用程序。

應用程序使用的身份驗證憑據(jù)包含在應用程序代碼中。因此,不要使用在外部用戶代理中運行的本機應用程序。

帶你全面了解 OAuth2.0

OAuth2.0 客戶端本機應用程序的架構(gòu)

一、 首先,用戶使用 Google、微信 等身份驗證應用程序訪問資源所有者的資源。

二、 接下來,本機應用程序使用客戶端 ID 和客戶端密鑰登錄到授權(quán)服務(wù)器。本機應用程序是桌面或手機應用程序的實例,它安裝在用戶計算機上,并將客戶端密鑰存儲在計算機或設(shè)備上。

三、 授權(quán)服務(wù)器允許使用客戶端憑據(jù)從資源服務(wù)器訪問資源。

四、 資源服務(wù)器包含由資源所有者擁有的資源。

總結(jié)

以上我們介紹了OAuth2.0 的整體流程,以及這中間涉及到的一些術(shù)語和概念我們分別進行了介紹。這要求我們對HTTP協(xié)議的原理要稍微有些了解。通過上面的介紹其實我們可以看到,整個過程較為核心的部分就是對 訪問令牌的獲取。可以查看OAuth2.0 - 頒發(fā)訪問令牌的幾種方式 來了解如何獲取訪問令牌。

分享到:
標簽:OAuth2
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定