IDaaS 技術(shù)解析單點登錄之 Token 認(rèn)證_第1頁
IDaaS 技術(shù)解析單點登錄之 Token 認(rèn)證_第2頁
IDaaS 技術(shù)解析單點登錄之 Token 認(rèn)證_第3頁
IDaaS 技術(shù)解析單點登錄之 Token 認(rèn)證_第4頁
IDaaS 技術(shù)解析單點登錄之 Token 認(rèn)證_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、IDaaS技術(shù)解析|單點登錄之Token認(rèn)證IDaaS即提供基于云的身份認(rèn)證和管理服務(wù)的平臺,確保在準(zhǔn)確判定用戶身份的基礎(chǔ)上,在正確的時間授予用戶正確的應(yīng)用、文件和其他資源的訪問權(quán)限。IDaaS能提供多種標(biāo)準(zhǔn)化功能幫助用戶實現(xiàn)高效、安全的身份認(rèn)證管理服務(wù),如單點登錄、智能多因素認(rèn)證、賬號生命周期管理等等。單點登錄是IDaaS平臺提供的關(guān)鍵功能之一,技術(shù)上涉及協(xié)議對接、認(rèn)證方式等諸多細(xì)節(jié),我們今天先來聊聊認(rèn)證方式。由于傳統(tǒng)基于Session認(rèn)證方式的局限性,目前單點登錄技術(shù)中一般使用Token認(rèn)證,下文將詳細(xì)介紹Token認(rèn)證的流程及相對優(yōu)勢。一、傳統(tǒng)基于Session的認(rèn)證方式在介紹Token

2、認(rèn)證前,先簡單介紹一下傳統(tǒng)基于Session的認(rèn)證。早前由于Http協(xié)議無狀態(tài)的特性(每次客戶端和服務(wù)端會話完成時,服務(wù)端不會保存會話信息,包括用戶上一次登錄時輸入的用戶名和密碼),于是基于Session的有狀態(tài)的認(rèn)證方式逐漸成為一種流行技術(shù)方案,以減少用戶在登錄客戶端時輸入用戶名和密碼的認(rèn)證操作次數(shù)。簡單來說,基于Session的認(rèn)證就是讓客戶端和服務(wù)端之間的認(rèn)證會話以Session的形式進(jìn)行存儲,并通過在服務(wù)端和客戶端之間傳輸Session,來實現(xiàn)兩方之間的身份認(rèn)證交流。具體流程如下:用戶在客戶端輸入用戶名和密碼,進(jìn)行登錄操作;服務(wù)端用戶身份驗證通過,生成Session,并存入數(shù)據(jù)庫中;客

3、戶端在瀏覽器上生成Cookie,并把Session寫入其中;用戶在客戶端后續(xù)有新的請求,都會在請求時攜帶Session,并發(fā)給服務(wù)端;如果客戶端logout,之前生成的Session會在客戶端和服務(wù)端都會被銷毀。雖然Session認(rèn)證有效解決了客戶端多次輸入用戶名和密碼的問題,但存在諸多弊端:A,服務(wù)端成本上升:每個用戶在客戶端進(jìn)行登錄操作后,服務(wù)端都需要進(jìn)行一次Session記錄,隨著注冊用戶不斷增多,存儲Session就會占用大服務(wù)器內(nèi)存,大型應(yīng)用可能還需要借助數(shù)據(jù)庫或者一系列緩存機(jī)制存儲Session。B,無法橫向擴(kuò)展:Session認(rèn)證方式在跨服務(wù)或跨域的資源共享方面表現(xiàn)很差。比如,多

4、個子域名提供同一個應(yīng)用服務(wù),或者單點登錄中用戶通過一套用戶名和密碼同時登錄多個應(yīng)用系統(tǒng),Session認(rèn)證方式在這樣的場景中就無法再起作用,尤其是對于分布式應(yīng)用而言,這種認(rèn)證方式很難在多個服務(wù)器負(fù)載上進(jìn)行橫向拓展。C,CSRF跨站點請求偽造(CrossSiteRequestForgery):Cookies存在很多不安全因素,如果Cookies被截獲,用戶就會很容易受到CSRF的攻擊,導(dǎo)致數(shù)據(jù)泄露。二基于Token的認(rèn)證方式Token認(rèn)證是無狀態(tài)的,其核心是簽名和驗簽??蛻舳嗣看蜗蚍?wù)端發(fā)送請求時都會攜帶Token,這里的Token是服務(wù)端用自己的密鑰簽名的,當(dāng)服務(wù)端接收到Token時會用自己的

5、密鑰去驗簽,判斷這個Token是否是自己簽發(fā)的,進(jìn)而對用戶身份進(jìn)行驗證。具體流程如下:客戶端使用用戶名和密碼請求登錄;服務(wù)端收到請求,去驗證用戶名與密碼;驗證成功后,服務(wù)端會簽發(fā)一個Token,再把這個Token發(fā)送給客戶端(一般用哈希算法再加個隨機(jī)數(shù));客戶端收到Token以后可以把它存儲起來,比如放在Cookie里或者LocalStorage里;客戶端每次向服務(wù)端請求資源的時候需要攜帶服務(wù)端簽發(fā)的Token;服務(wù)端收到請求,然后去驗證客戶端請求里面攜帶的Token,如果驗證成功,就向客戶端返回請求的數(shù)據(jù)。從以上流程中可以看到,相較于傳統(tǒng)的Session認(rèn)證,Token認(rèn)證在成本、可擴(kuò)展性和

6、安全性等方面都有一定的優(yōu)勢:A,服務(wù)端負(fù)載減輕:服務(wù)端無需對生成的Token進(jìn)行保存,只需要對Token進(jìn)行簽發(fā)和驗簽即可。Token中寫入很多身份驗證中所需要的信息,比如哈希簽名算法、用戶信息和簽名,服務(wù)端的負(fù)載會減輕許多。B,通過API實現(xiàn)橫向擴(kuò)展:基于Token的認(rèn)證通過API調(diào)用的方式,可以將Token認(rèn)證應(yīng)用到不同的服務(wù)和域中,使分布式應(yīng)用的身份認(rèn)證實現(xiàn)起來更高效便捷。C,不需要CSRF防護(hù):由于不需要依賴Cookie,自然不用擔(dān)心Cookie被截獲,以及由此引發(fā)的用戶信息被偽造登錄的問題。D,支持移動端訪問:Cookie本身不支持手機(jī)端訪問,Token認(rèn)證機(jī)制在移動端具有極大的優(yōu)勢

7、。JSONWebToken(JWT)是目前在單點登錄實踐中最為通用的Token認(rèn)證方式。JWT包含頭部(header)、載荷(payload)和簽名(signature)三部分。IDP(IdentityProvider,即身份服務(wù)提供者)會將用戶數(shù)據(jù)以加密的形式寫入JWT,SP(ServiceProvider,服務(wù)提供者)會對JWT進(jìn)行存儲,IDP會在隨后的SP每次請求中對JWT進(jìn)行驗簽和確認(rèn),從而有效確保用戶私密信息不會被盜。舉個例子,玉符IDaaS在單點登錄上采用JWT進(jìn)行身份認(rèn)證的Token簽發(fā)和驗簽,整個過程中沒有密碼等私密信息的傳遞,只會在跨服務(wù)器的信息共享中傳輸像郵箱這樣的身份標(biāo)識

8、符號,這樣可以從根本上規(guī)避身份認(rèn)證信息泄露引發(fā)的數(shù)據(jù)泄露問題。當(dāng)然軟件工程的世界里沒有銀彈”,我們在玉符IDaaS設(shè)計中采用了多種機(jī)制為Token的安全加碼一采用HTTPS的形式對Token進(jìn)行加密,對于常見的瀏覽器和操作系統(tǒng),強(qiáng)制使用TLS1.2協(xié)議,而禁用SSLv3(SSLMODESENDFALLBACKSCSV)。服務(wù)所用HTTPS證書來自知名證書機(jī)構(gòu)GeoTrust,具有極高可用性,最高256位SSL加密,杜絕中間人監(jiān)聽;在JWT和對接應(yīng)用服務(wù)之間采用定期密鑰輪轉(zhuǎn)機(jī)制,所有頒發(fā)的Token都具備強(qiáng)時效性,防止Token的超前使用或者過期使用,同時支持一次性Token,使用過的Token也可以被記錄并禁止二次使用,從而降低偷竊者破解使用Token的可能性;對于Cookie的安全,玉符全域防止Cook

溫馨提示

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

評論

0/150

提交評論