




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、IDaaS技術(shù)解析|單點(diǎn)登錄之Token認(rèn)證IDaaS即提供基于云的身份認(rèn)證和管理服務(wù)的平臺(tái),確保在準(zhǔn)確判定用戶(hù)身份的基礎(chǔ)上,在正確的時(shí)間授予用戶(hù)正確的應(yīng)用、文件和其他資源的訪問(wèn)權(quán)限。IDaaS能提供多種標(biāo)準(zhǔn)化功能幫助用戶(hù)實(shí)現(xiàn)高效、安全的身份認(rèn)證管理服務(wù),如單點(diǎn)登錄、智能多因素認(rèn)證、賬號(hào)生命周期管理等等。單點(diǎn)登錄是IDaaS平臺(tái)提供的關(guān)鍵功能之一,技術(shù)上涉及協(xié)議對(duì)接、認(rèn)證方式等諸多細(xì)節(jié),我們今天先來(lái)聊聊認(rèn)證方式。由于傳統(tǒng)基于Session認(rèn)證方式的局限性,目前單點(diǎn)登錄技術(shù)中一般使用Token認(rèn)證,下文將詳細(xì)介紹Token認(rèn)證的流程及相對(duì)優(yōu)勢(shì)。一、傳統(tǒng)基于Session的認(rèn)證方式在介紹Token
2、認(rèn)證前,先簡(jiǎn)單介紹一下傳統(tǒng)基于Session的認(rèn)證。早前由于Http協(xié)議無(wú)狀態(tài)的特性(每次客戶(hù)端和服務(wù)端會(huì)話完成時(shí),服務(wù)端不會(huì)保存會(huì)話信息,包括用戶(hù)上一次登錄時(shí)輸入的用戶(hù)名和密碼),于是基于Session的有狀態(tài)的認(rèn)證方式逐漸成為一種流行技術(shù)方案,以減少用戶(hù)在登錄客戶(hù)端時(shí)輸入用戶(hù)名和密碼的認(rèn)證操作次數(shù)。簡(jiǎn)單來(lái)說(shuō),基于Session的認(rèn)證就是讓客戶(hù)端和服務(wù)端之間的認(rèn)證會(huì)話以Session的形式進(jìn)行存儲(chǔ),并通過(guò)在服務(wù)端和客戶(hù)端之間傳輸Session,來(lái)實(shí)現(xiàn)兩方之間的身份認(rèn)證交流。具體流程如下:用戶(hù)在客戶(hù)端輸入用戶(hù)名和密碼,進(jìn)行登錄操作;服務(wù)端用戶(hù)身份驗(yàn)證通過(guò),生成Session,并存入數(shù)據(jù)庫(kù)中;客
3、戶(hù)端在瀏覽器上生成Cookie,并把Session寫(xiě)入其中;用戶(hù)在客戶(hù)端后續(xù)有新的請(qǐng)求,都會(huì)在請(qǐng)求時(shí)攜帶Session,并發(fā)給服務(wù)端;如果客戶(hù)端logout,之前生成的Session會(huì)在客戶(hù)端和服務(wù)端都會(huì)被銷(xiāo)毀。雖然Session認(rèn)證有效解決了客戶(hù)端多次輸入用戶(hù)名和密碼的問(wèn)題,但存在諸多弊端:A,服務(wù)端成本上升:每個(gè)用戶(hù)在客戶(hù)端進(jìn)行登錄操作后,服務(wù)端都需要進(jìn)行一次Session記錄,隨著注冊(cè)用戶(hù)不斷增多,存儲(chǔ)Session就會(huì)占用大服務(wù)器內(nèi)存,大型應(yīng)用可能還需要借助數(shù)據(jù)庫(kù)或者一系列緩存機(jī)制存儲(chǔ)Session。B,無(wú)法橫向擴(kuò)展:Session認(rèn)證方式在跨服務(wù)或跨域的資源共享方面表現(xiàn)很差。比如,多
4、個(gè)子域名提供同一個(gè)應(yīng)用服務(wù),或者單點(diǎn)登錄中用戶(hù)通過(guò)一套用戶(hù)名和密碼同時(shí)登錄多個(gè)應(yīng)用系統(tǒng),Session認(rèn)證方式在這樣的場(chǎng)景中就無(wú)法再起作用,尤其是對(duì)于分布式應(yīng)用而言,這種認(rèn)證方式很難在多個(gè)服務(wù)器負(fù)載上進(jìn)行橫向拓展。C,CSRF跨站點(diǎn)請(qǐng)求偽造(CrossSiteRequestForgery):Cookies存在很多不安全因素,如果Cookies被截獲,用戶(hù)就會(huì)很容易受到CSRF的攻擊,導(dǎo)致數(shù)據(jù)泄露。二基于Token的認(rèn)證方式Token認(rèn)證是無(wú)狀態(tài)的,其核心是簽名和驗(yàn)簽。客戶(hù)端每次向服務(wù)端發(fā)送請(qǐng)求時(shí)都會(huì)攜帶Token,這里的Token是服務(wù)端用自己的密鑰簽名的,當(dāng)服務(wù)端接收到Token時(shí)會(huì)用自己的
5、密鑰去驗(yàn)簽,判斷這個(gè)Token是否是自己簽發(fā)的,進(jìn)而對(duì)用戶(hù)身份進(jìn)行驗(yàn)證。具體流程如下:客戶(hù)端使用用戶(hù)名和密碼請(qǐng)求登錄;服務(wù)端收到請(qǐng)求,去驗(yàn)證用戶(hù)名與密碼;驗(yàn)證成功后,服務(wù)端會(huì)簽發(fā)一個(gè)Token,再把這個(gè)Token發(fā)送給客戶(hù)端(一般用哈希算法再加個(gè)隨機(jī)數(shù));客戶(hù)端收到Token以后可以把它存儲(chǔ)起來(lái),比如放在Cookie里或者LocalStorage里;客戶(hù)端每次向服務(wù)端請(qǐng)求資源的時(shí)候需要攜帶服務(wù)端簽發(fā)的Token;服務(wù)端收到請(qǐng)求,然后去驗(yàn)證客戶(hù)端請(qǐng)求里面攜帶的Token,如果驗(yàn)證成功,就向客戶(hù)端返回請(qǐng)求的數(shù)據(jù)。從以上流程中可以看到,相較于傳統(tǒng)的Session認(rèn)證,Token認(rèn)證在成本、可擴(kuò)展性和
6、安全性等方面都有一定的優(yōu)勢(shì):A,服務(wù)端負(fù)載減輕:服務(wù)端無(wú)需對(duì)生成的Token進(jìn)行保存,只需要對(duì)Token進(jìn)行簽發(fā)和驗(yàn)簽即可。Token中寫(xiě)入很多身份驗(yàn)證中所需要的信息,比如哈希簽名算法、用戶(hù)信息和簽名,服務(wù)端的負(fù)載會(huì)減輕許多。B,通過(guò)API實(shí)現(xiàn)橫向擴(kuò)展:基于Token的認(rèn)證通過(guò)API調(diào)用的方式,可以將Token認(rèn)證應(yīng)用到不同的服務(wù)和域中,使分布式應(yīng)用的身份認(rèn)證實(shí)現(xiàn)起來(lái)更高效便捷。C,不需要CSRF防護(hù):由于不需要依賴(lài)Cookie,自然不用擔(dān)心Cookie被截獲,以及由此引發(fā)的用戶(hù)信息被偽造登錄的問(wèn)題。D,支持移動(dòng)端訪問(wèn):Cookie本身不支持手機(jī)端訪問(wèn),Token認(rèn)證機(jī)制在移動(dòng)端具有極大的優(yōu)勢(shì)
7、。JSONWebToken(JWT)是目前在單點(diǎn)登錄實(shí)踐中最為通用的Token認(rèn)證方式。JWT包含頭部(header)、載荷(payload)和簽名(signature)三部分。IDP(IdentityProvider,即身份服務(wù)提供者)會(huì)將用戶(hù)數(shù)據(jù)以加密的形式寫(xiě)入JWT,SP(ServiceProvider,服務(wù)提供者)會(huì)對(duì)JWT進(jìn)行存儲(chǔ),IDP會(huì)在隨后的SP每次請(qǐng)求中對(duì)JWT進(jìn)行驗(yàn)簽和確認(rèn),從而有效確保用戶(hù)私密信息不會(huì)被盜。舉個(gè)例子,玉符IDaaS在單點(diǎn)登錄上采用JWT進(jìn)行身份認(rèn)證的Token簽發(fā)和驗(yàn)簽,整個(gè)過(guò)程中沒(méi)有密碼等私密信息的傳遞,只會(huì)在跨服務(wù)器的信息共享中傳輸像郵箱這樣的身份標(biāo)識(shí)
8、符號(hào),這樣可以從根本上規(guī)避身份認(rèn)證信息泄露引發(fā)的數(shù)據(jù)泄露問(wèn)題。當(dāng)然軟件工程的世界里沒(méi)有銀彈”,我們?cè)谟穹鸌DaaS設(shè)計(jì)中采用了多種機(jī)制為T(mén)oken的安全加碼一采用HTTPS的形式對(duì)Token進(jìn)行加密,對(duì)于常見(jiàn)的瀏覽器和操作系統(tǒng),強(qiáng)制使用TLS1.2協(xié)議,而禁用SSLv3(SSLMODESENDFALLBACKSCSV)。服務(wù)所用HTTPS證書(shū)來(lái)自知名證書(shū)機(jī)構(gòu)GeoTrust,具有極高可用性,最高256位SSL加密,杜絕中間人監(jiān)聽(tīng);在JWT和對(duì)接應(yīng)用服務(wù)之間采用定期密鑰輪轉(zhuǎn)機(jī)制,所有頒發(fā)的Token都具備強(qiáng)時(shí)效性,防止Token的超前使用或者過(guò)期使用,同時(shí)支持一次性Token,使用過(guò)的Token也可以被記錄并禁止二次使用,從而降低偷竊者破解使用Token的可能性;對(duì)于Cookie的安全,玉符全域防止Cook
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 主題公園場(chǎng)地租賃與合作經(jīng)營(yíng)合同(BF)
- 車(chē)輛轉(zhuǎn)讓與違章處理責(zé)任協(xié)議
- 醫(yī)療機(jī)構(gòu)租賃合同簽訂注意事項(xiàng)與醫(yī)療服務(wù)質(zhì)量保證
- 產(chǎn)業(yè)園區(qū)廠區(qū)物業(yè)管理與設(shè)施維護(hù)合同
- 建筑工程材料采購(gòu)合同簽訂及驗(yàn)收標(biāo)準(zhǔn)
- 長(zhǎng)租車(chē)輛代駕服務(wù)合同范本
- 商砼公司行政管理制度
- 四川鄉(xiāng)鎮(zhèn)環(huán)保管理制度
- 團(tuán)委幫扶油庫(kù)管理制度
- 廣東省深圳實(shí)驗(yàn)學(xué)校初中部2024-2025學(xué)年八年級(jí)下學(xué)期期中考試物理試卷
- 合肥市市政標(biāo)準(zhǔn)化圖冊(cè)演示文稿
- 口腔黏膜課件第9章10章性傳播疾病的口腔表征 艾滋病
- GB/T 307.1-2017滾動(dòng)軸承向心軸承產(chǎn)品幾何技術(shù)規(guī)范(GPS)和公差值
- GB/T 20021-2017帆布芯耐熱輸送帶
- GB/T 13667.1-2015鋼制書(shū)架第1部分:?jiǎn)?、?fù)柱書(shū)架
- 贛價(jià)協(xié)〔2023〕9號(hào)江西省建設(shè)工程造價(jià)咨詢(xún)服務(wù)收費(fèi)基準(zhǔn)價(jià)
- DB3709-T 007-2022醫(yī)養(yǎng)結(jié)合機(jī)構(gòu)老年人健康檔案管理規(guī)范
- DBJ53T-19-2007加芯攪拌樁技術(shù)規(guī)程
- (新版)舟艇駕駛理論考試題庫(kù)500題(單選、判斷題)
- 26個(gè)英語(yǔ)字母書(shū)寫(xiě)標(biāo)準(zhǔn)練習(xí)A4打印
- 教學(xué)課件 金屬學(xué)與熱處理-崔忠圻
評(píng)論
0/150
提交評(píng)論