OAuth 2.0 简介
文章目錄
- 一、什么是OAuth2
 - 二、OAuth2使用場(chǎng)景
 - 三、Oauth設(shè)計(jì)理念
 - 四、OAuth 2.0的運(yùn)行流程
 - 五、客戶端獲取授權(quán)的四種模式
 
前言:之前一直覺(jué)得Oauth比較神秘,今天就花了點(diǎn)時(shí)間,了解了下,感覺(jué)Oauth認(rèn)證確實(shí)對(duì)目前互聯(lián)網(wǎng)是一個(gè)不錯(cuò)的選擇
一、什么是OAuth2
百度百科定義是這樣的:OAuth2.0是OAuth協(xié)議的延續(xù)版本,但不向前兼容OAuth 2.0(即完全廢止了OAuth1.0)。 OAuth 2.0關(guān)注客戶端開(kāi)發(fā)者的簡(jiǎn)易性。要么通過(guò)組織在資源擁有者和HTTP服務(wù)商之間的被批準(zhǔn)的交互動(dòng)作代表用戶,要么允許第三方應(yīng)用代表用戶獲得訪問(wèn)的權(quán)限。同時(shí)為Web應(yīng)用,桌面應(yīng)用和手機(jī),和起居室設(shè)備提供專門的認(rèn)證流程。2012年10月,OAuth 2.0協(xié)議正式發(fā)布為RFC 6749 [1] 。
二、OAuth2使用場(chǎng)景
假設(shè)你現(xiàn)在使用一款軟件,但是不想注冊(cè),就可以使用微信授權(quán)登錄。
 
 如圖微信會(huì)告訴你,授權(quán)應(yīng)用將會(huì)訪問(wèn)你的那些用戶數(shù)據(jù)。
 首先我們來(lái)理解下OAuth2.0協(xié)議的一些定義
三、Oauth設(shè)計(jì)理念
OAuth在"客戶端"與"服務(wù)提供商"之間,設(shè)置一個(gè)授權(quán)層(authorization layer)。
四、OAuth 2.0的運(yùn)行流程
(A)用戶打開(kāi)客戶端,客戶端要求用戶給予授權(quán)。
(B)用戶同意給予客戶端授權(quán)。
(C)客戶端使用上一步獲得的授權(quán)(一般是Code),向認(rèn)證服務(wù)器申請(qǐng)令牌TOKEN。
(D)認(rèn)證服務(wù)器對(duì)客戶端進(jìn)行認(rèn)證以后,確認(rèn)無(wú)誤,同意發(fā)放令牌。
(E)客戶端使用令牌,向資源服務(wù)器申請(qǐng)獲取資源(用戶信息等)。
(F)資源服務(wù)器確認(rèn)令牌無(wú)誤,同意向客戶端開(kāi)放資源。
五、客戶端獲取授權(quán)的四種模式
客戶端必須得到用戶的授權(quán)(authorization grant),才能獲得令牌(access token)。
OAuth 2.0定義了四種授權(quán)方式:
- 授權(quán)碼模式(authorization code)
 - 簡(jiǎn)化模式(implicit)
 - 密碼模式(resource owner password credentials)
 - 客戶端模式(client credentials)
詳細(xì)授權(quán)模式可以參考大佬文章講的很詳細(xì)。 
總結(jié)
以上是生活随笔為你收集整理的OAuth 2.0 简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
                            
                        - 上一篇: JAVA8 Optional新特性和使用
 - 下一篇: SpringSecruity整合Oaut