丨查漏補(bǔ)缺oauth20常見(jiàn)問(wèn)題答疑_第1頁(yè)
丨查漏補(bǔ)缺oauth20常見(jiàn)問(wèn)題答疑_第2頁(yè)
丨查漏補(bǔ)缺oauth20常見(jiàn)問(wèn)題答疑_第3頁(yè)
丨查漏補(bǔ)缺oauth20常見(jiàn)問(wèn)題答疑_第4頁(yè)
丨查漏補(bǔ)缺oauth20常見(jiàn)問(wèn)題答疑_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

有了刷新令牌,是不是就可以讓令牌一直有效了使用了HTTPS,是不是就能確保JWT格式令牌的數(shù)據(jù)安ID令牌和令牌之間有聯(lián)系嗎PKCE協(xié)議到底解決的是什么問(wèn)題?OAuthOAuth協(xié)議的設(shè)計(jì)初衷,就是讓最終用戶也就是資源擁有者(小明),將他們?cè)谑鼙Wo(hù)資源服務(wù)器(京東商家開(kāi)放平臺(tái))上的部分權(quán)限(查詢當(dāng)天訂單)委托給第應(yīng)用(小兔打單軟件),使得第應(yīng)用(小兔)能夠代表最終用戶(小明)執(zhí)行操作(查詢當(dāng)天訂單)。這便是OAuh協(xié)議設(shè)計(jì)的目的。在OAuh協(xié)議中,通過(guò)為每個(gè)第軟件和每個(gè)用戶的組合分別生成對(duì)受保護(hù)資源具有受限的權(quán)限的憑據(jù),也就是令牌,來(lái)代替之前的用戶名和。而生成令牌之前的登錄操作,又是在用戶跟平臺(tái)之間進(jìn)行的,第軟件根本無(wú)從得知用戶的任何信息。這樣第軟件的邏輯處理就大大簡(jiǎn)化了,它今后的動(dòng)作就變成了請(qǐng)求令牌、使用訪問(wèn)令牌、受保護(hù)資源,同時(shí)在第軟件調(diào)用大量API的時(shí)候,不再傳輸用戶名和密碼,從而減少了的面。OAuth2.0是認(rèn)證協(xié)議嗎在這門(mén)課中,我其實(shí)一直在強(qiáng)調(diào),OAuth2.0是一種協(xié)議,“它一心只專注于干好授權(quán)這件事兒”,OAuth2.0不是認(rèn)證協(xié)議。但實(shí)際上,我在剛開(kāi)始學(xué)習(xí)OAuth2.0的因?yàn)槲耶?dāng)時(shí)覺(jué)得,有用戶參與其中,比如在使用小兔打單軟件之前,要向服務(wù)進(jìn)行登錄操作從而進(jìn)行認(rèn)證,那OAuth2.0就應(yīng)該是一個(gè)認(rèn)證協(xié)議啊。但是,必須登錄之后才能進(jìn)行,是一個(gè)額外的需求,登錄跟體系是獨(dú)立的。雖然登錄操作看似“內(nèi)嵌”在了OAuh2.0的流程中,但生產(chǎn)環(huán)境中登錄和還是兩套獨(dú)立存在的系統(tǒng)。所以說(shuō),像這種“內(nèi)嵌”的認(rèn)證行為,并不是說(shuō)OAuth2.0自身承擔(dān)起了認(rèn)證協(xié)議的責(zé)任。同時(shí),認(rèn)證會(huì)告訴第軟件當(dāng)前的用戶是誰(shuí),但實(shí)際上OAuth2.0自始至終都沒(méi)有向第軟件透露過(guò)關(guān)于用戶的任何信息。這一點(diǎn),我們?cè)谥v發(fā)明OAth協(xié)議的目的時(shí)也提到過(guò)。我們可以再想想小兔打單軟件的例子,看是不是這樣:小兔打單軟件也不會(huì)知道的任何信息,它僅僅是請(qǐng)求令牌,使用令牌并最終調(diào)用查詢訂單的API要回答這個(gè)問(wèn)題,我們先復(fù)習(xí)下令牌和刷新令牌相關(guān)的幾個(gè)知識(shí)點(diǎn)吧第一,OAuth2.0的是,的是令牌,也就是我們說(shuō)的令牌。第二,在 第3講中我們提到,為了提高用戶的體驗(yàn),OAuth2.0提供了刷新令牌的機(jī)制,使得令牌過(guò)期后,第軟件在無(wú)需用戶再次的情況下,可以重新請(qǐng)求一個(gè)令牌。第三,在使用上,刷新令牌只能用在服務(wù)上,而令牌只能用在受保護(hù)資源服務(wù)有了這些知識(shí)做基礎(chǔ),我們可以繼續(xù)分析“有了刷新令牌,是不是就可以讓令牌一直當(dāng)令牌被“遞給”受保護(hù)資源服務(wù)的時(shí)候,受保護(hù)資源服務(wù)需要對(duì)令牌進(jìn)行驗(yàn)證,還要對(duì)令牌關(guān)聯(lián)的權(quán)限和第軟件的請(qǐng)求進(jìn)行權(quán)限匹配校驗(yàn)。當(dāng)令牌過(guò)期的時(shí)候,我們使用刷新令牌請(qǐng)求到的令牌,是服務(wù)重新生成的,而不是延長(zhǎng)了原仍然給第軟件返回上一個(gè)刷新令牌。安全起見(jiàn),我們的建議是返回一個(gè)新的刷新令牌。這時(shí),你可能就有一個(gè)疑問(wèn)了:第軟件已經(jīng)換了一個(gè)令牌了,刷新令牌又一直存在,那是不是就可以一直使用刷新令牌來(lái)獲取令牌了呢?要解決這個(gè)疑問(wèn),我們要知道的是,刷新令牌也有有效期。盡管生成了新的刷新令牌,但了,就不能再繼續(xù)用它來(lái)申請(qǐng)新的令牌了。HTTPSJWTOAuth2.0的使用從來(lái)都不應(yīng)該脫離HTTPS。因?yàn)榱钆?、?yīng)用密鑰敏感信息要在網(wǎng)絡(luò)上傳輸,都離不開(kāi)HTTPS的保護(hù)。但是,HTTPS也只是保證了令牌等重要信息在網(wǎng)在OAuth2.0的規(guī)范中,令牌對(duì)第軟件是不透明的,從來(lái)都不應(yīng)該被任何第軟件解析到。由于JWT格式的令牌自包含了用戶相關(guān)的信息,比如用戶標(biāo)識(shí),因此僅僅對(duì)它進(jìn)行簽名還不夠。要避免第軟件有機(jī)會(huì)獲取令牌所包含的信息,那我們?cè)谂c第軟件交互的環(huán)境下使用JWT格式的令牌時(shí),還要對(duì)它進(jìn)行加密來(lái)保障令牌的安全,而不是僅僅依靠HTTPS。在第9講中,我們?cè)谟肙Auth2.0實(shí)現(xiàn)一個(gè)OpenIDConnect認(rèn)證協(xié)議的時(shí),講到了ID令牌。在這一講的后面,有同學(xué)還是不太清楚ID令牌和令牌是啥關(guān)系,當(dāng)時(shí)我就在留言區(qū)做了回復(fù)。現(xiàn)在,我重新整理了思路再和你解釋一下,因?yàn)檎J(rèn)識(shí)到ID令牌和令牌的聯(lián)系與區(qū)別,對(duì)我們利用OAuth2.0搭建一個(gè)認(rèn)證協(xié)議來(lái)說(shuō)太重要了。我們先來(lái)總結(jié)下ID令牌和令牌的作用ID令牌,也就是ID_TOKEN,代表的是用戶令牌,可以說(shuō)是一個(gè)單獨(dú)的認(rèn)證結(jié)令牌,也就是ACCESS_TOKEN,就是一個(gè)令牌,是要被第軟件用來(lái)作為憑第一,ID令牌是對(duì)令牌的補(bǔ)充,而不是要替換令牌。之所以采用這樣雙令牌的方式,就是想讓早先存在的令牌,可以在OAuth2.0中繼續(xù)保持對(duì)第軟件的不透明性,而讓后來(lái)新增的ID令牌要能夠被解析,目的就是方便應(yīng)用到認(rèn)證協(xié)議中。第二,ID令牌和令牌有不同的生命周期,ID令牌的生命周期相對(duì)來(lái)說(shuō)更短些。因?yàn)镮D令牌的作用就是代表一個(gè)單獨(dú)的認(rèn)證結(jié)果,它的使命就是用來(lái)標(biāo)識(shí)用戶的。而這個(gè)標(biāo)識(shí)并不是用戶名,用戶登錄的時(shí)候用的是用戶名而不是這個(gè)ID牌,所以如果用戶注銷或者退出了登錄,ID令牌的生命周期就隨之結(jié)束了。令牌可以在用戶離開(kāi)后的很長(zhǎng)時(shí)間內(nèi),繼續(xù)被第軟件用來(lái)請(qǐng)求受保護(hù)資源服務(wù)。比如,使用了小兔打單軟件的批量導(dǎo)出訂單功能,如果耗時(shí)相對(duì)比較長(zhǎng),不必一我們?cè)诘?講中學(xué)習(xí)PKCE協(xié)議時(shí),我看到了大家對(duì)這個(gè)協(xié)議的很多留言,有的是自己的思考,有的是問(wèn)題的進(jìn)一步討論。我們要理解PKCE協(xié)議到底解決了什么問(wèn)題,就要2012年10月OAuth2.0的正式協(xié)議框架,也就是的RFC6749被正式發(fā)布2015年9月增補(bǔ)了PKCE協(xié)議,也就是的RFC7636。從時(shí)間上來(lái)看,從正式發(fā)布OAuth2.0協(xié)議到增補(bǔ)發(fā)布了PKCE協(xié)議,整整間隔了三年,而這三年恰恰是移動(dòng)應(yīng)同時(shí),在原生的移動(dòng)客戶端應(yīng)用保存秘鑰又存在特殊的安全問(wèn)題,使用OAuth2.0碼所以,PKCE被增補(bǔ)發(fā)布的背景是,移動(dòng)應(yīng)用大力發(fā)展,同時(shí)原生客戶端使用OAuth2.0著安全風(fēng)險(xiǎn)。這樣我們就能理解了,發(fā)布PKCE協(xié)議的目的,主要就是緩解針對(duì)公開(kāi)今天,我們專門(mén)用一節(jié)課來(lái)統(tǒng)一回答了OAuth2.0共性問(wèn)題。我再來(lái)總結(jié)下你需要掌握OAuth協(xié)議被發(fā)明的目的,就是用令牌代替用戶名和OAuth2.0不能被直接用來(lái)“從事”認(rèn)證協(xié)議的“工作”。雖然OAuth2.0的使用要求是在HTTPS的環(huán)境下,但這并不能解決JWT令牌對(duì)第軟件“不透明”的問(wèn)有了刷新令牌也不能讓令牌一直有效下去,因?yàn)樗⑿铝钆埔灿杏行贗D令牌是對(duì)令牌的補(bǔ)充,而不是要替代令牌PKCE是OAuth2.0的一個(gè)增補(bǔ)協(xié)議,主要用來(lái)緩解碼被的安全風(fēng)險(xiǎn)或許你在學(xué)習(xí)和實(shí)踐OAuth2.0還會(huì)遇到其他問(wèn)題,但不用擔(dān)心,我們的留言區(qū)一直歡迎你在留言區(qū)你的觀點(diǎn),也歡迎你把今天的內(nèi)容給其他使用OAuth2.0的朋 不得售賣(mài)。頁(yè)面已增

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論