云智慧(北京)科技有限公司鄧超
安陽(yáng)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
說起oauth3.0,我相信很多人對(duì)其已經(jīng)非常熟悉,并且已經(jīng)應(yīng)用在很多開放平臺(tái)上,如新浪微博開放平臺(tái),騰訊微博開放平臺(tái)等;下面我將我個(gè)人對(duì)于Oauth3的理解以及Oauth3在監(jiān)控寶開放平臺(tái)上的是如何運(yùn)用的做一下簡(jiǎn)單的闡述,有說的不到位的地方還望指點(diǎn)。
官方定義:
OAuth(開放授權(quán))是一個(gè)開放標(biāo)準(zhǔn),允許用戶讓第三方應(yīng)用訪問該用戶在某一網(wǎng)站上存儲(chǔ)的私密的資源,而無需將用戶名和密碼提供給第三方應(yīng)用。
OAuth允許用戶提供一個(gè)令牌,而不是用戶名和密碼來訪問他們存放在特定服務(wù)提供者的數(shù)據(jù)。每一個(gè)令牌授權(quán)一個(gè)特定的網(wǎng)站在特定的時(shí)段內(nèi)訪問特定的資源。這樣,OAuth讓用戶可以授權(quán)第三方網(wǎng)站訪問他們存儲(chǔ)在另外服務(wù)提供者的某些特定信息,而非所有內(nèi)容。
OAuth 2.0是OAuth協(xié)議的下一版本,但不向下兼容OAuth 1.0。OAuth 2.0關(guān)注客戶端開發(fā)者的簡(jiǎn)易性,同時(shí)為Web應(yīng)用,桌面應(yīng)用和手機(jī),和起居室設(shè)備提供專門的認(rèn)證流程。
個(gè)人理解:
Oauth3.0就是一個(gè)互聯(lián)網(wǎng)標(biāo)準(zhǔn)協(xié)議(基于https) ,可以讓用戶來實(shí)現(xiàn)跨平臺(tái)數(shù)據(jù)共享。
比如有2個(gè)平臺(tái)A和B,在A平臺(tái)上有一些數(shù)據(jù)資源,現(xiàn)在B平臺(tái)想拿到A平臺(tái)上的某些數(shù)據(jù)資源,如果此時(shí)A平臺(tái)支持Oauth3協(xié)議,那么B平臺(tái)就可以通過協(xié)議向A平臺(tái)請(qǐng)求相應(yīng)的數(shù)據(jù)資源應(yīng)用的B平臺(tái)上。
OAuth在"客戶端"與"資源服務(wù)端"之間,設(shè)置了一個(gè)授權(quán)層(authorization layer)。其過程如圖(來自RFC 6749 ):
(A)“客戶端”向“資源所屬者”發(fā)出授權(quán)請(qǐng)求
(B)“資源所屬者”同意給“客戶端”授權(quán)
(C)“客戶端”獲得授權(quán)后向“認(rèn)證服務(wù)端”請(qǐng)求令牌
(D)“認(rèn)證服務(wù)端”向“客戶端”發(fā)放令牌(Access Token)
(E)“客戶端”通過令牌向“資源服務(wù)端”請(qǐng)求資源
(F)“資源服務(wù)端”確認(rèn)令牌無誤,向“客戶端”發(fā)放資源
從以上步驟可以看出,“客戶端”想拿到資源,關(guān)鍵點(diǎn)在于“資源所屬者”的授權(quán),只有拿到了授權(quán),才可以進(jìn)行接下來的步驟。
OAuth 2.0定義了四種授權(quán)方式:
§ A、授權(quán)碼模式(authorization code)
授權(quán)碼模式(authorization code)的特點(diǎn)就是通過客戶端的后臺(tái) § B、簡(jiǎn)化模式(implicit) 簡(jiǎn)化模式(implicit grant type)不通過第三方應(yīng)用程序的服務(wù)器,直接在 瀏覽器中向認(rèn)證服務(wù)器申請(qǐng)令牌,跳過了"授權(quán)碼"這個(gè)步驟。所有步驟在瀏覽器中 完成,令牌對(duì)訪問者是可見的,且客戶端不需要認(rèn)證。 § C、密碼模式(resource owner passwordcredentials) 密碼模式(Resource Owner Password Credentials Grant)中,用戶向 客戶端提供自己的用戶名和密碼??蛻舳耸褂眠@些信息,向"服務(wù)商提供商"索要授 權(quán)。 § D、客戶端模式(client credentials 客戶端模式(Client Credentials Grant)指客戶端以自己的名義,而不是 以用戶的名義,向"服務(wù)提供商"進(jìn)行認(rèn)證。 § 目前監(jiān)控寶的API平臺(tái)只對(duì)監(jiān)控寶企業(yè)用戶開發(fā),而不對(duì)所有監(jiān)控寶用戶開發(fā)?;谶@種情況,Oauth的密碼授權(quán)模式比較適合(注:通過賬號(hào)和密碼,平臺(tái)就可以認(rèn)證是否為監(jiān)控寶企業(yè)用戶,從而來判斷是否給予授權(quán)),所以我們果斷采用了這種授權(quán)方式。 監(jiān)控寶API平臺(tái)簡(jiǎn)化了授權(quán)過程,平臺(tái)將每一個(gè)企業(yè)賬號(hào)當(dāng)做一個(gè)客戶端,并自動(dòng)為其生成一個(gè)唯一的授權(quán)標(biāo)識(shí),所以每一個(gè)客戶端可以直接向平臺(tái)認(rèn)證服務(wù)端請(qǐng)求令牌,然后通過令牌向平臺(tái)資源服務(wù)端請(qǐng)求資源。如圖(監(jiān)控寶API平臺(tái)認(rèn)證過程): 關(guān)于監(jiān)控寶API平臺(tái)請(qǐng)具體參考: http://www.jiankongbao.com/common/api_interface 關(guān)于作者: 鄧超,云智慧軟件開發(fā)工程師,2010年畢業(yè)于秦皇島燕山大學(xué),2012年初加入云智慧(北京)科技有限公司。目前主要負(fù)責(zé)監(jiān)控寶產(chǎn)品架構(gòu)的優(yōu)化與研發(fā)。四、Oauth3在監(jiān)控寶API平臺(tái)上的運(yùn)用
新聞名稱:oauth2.0在監(jiān)控寶項(xiàng)目中的應(yīng)用一例
地址分享:http://weahome.cn/article/pochep.html