如何平衡Token安全性和用戶體驗

今天就跟大家聊聊有關(guān)如何平衡Token安全性和用戶體驗,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、城西ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的城西網(wǎng)站制作公司

下面繼續(xù)介紹一組相關(guān)概念:Access Token & Refresh Token。

眾所周知,Token作為用戶獲取受保護(hù)資源的憑證,必須設(shè)置一個過期時間,否則一次登錄便可永久使用,認(rèn)證功能就失去了意義。但是矛盾在于:過期時間設(shè)置得太長,用戶數(shù)據(jù)的安全性將大打折扣;過期時間設(shè)置得太短,用戶就必須每隔一段時間重新登錄,以獲取新的憑證,這會極大挫傷用戶的積極性。針對這一問題,我們可以利用Access / Refresh Token這一概念來平衡Token安全性和用戶體驗。

Access / Refresh Token是什么?

如何平衡Token安全性和用戶體驗

圖 1

上圖表示Access/Refresh Token在客戶端、認(rèn)證服務(wù)器、資源服務(wù)器三者之間的傳遞關(guān)系,簡單來說:

  • Access Token即“訪問令牌”,是客戶端向資源服務(wù)器換取資源的憑證;

  • Refresh Token即“刷新令牌”,是客戶端向認(rèn)證服務(wù)器換取Access Token的憑證。

Access / Refresh Token如何使用?

如何平衡Token安全性和用戶體驗

圖 2

上圖表示客戶端請求資源的過程中,Access Token 和 Refresh Token 是如何配合使用的:

1. 用戶提供身份信息(一般是用戶名密碼),利用客戶端向認(rèn)證服務(wù)器換取 Refresh Token和Access Token;

2. 客戶端攜帶Access Token訪問資源服務(wù)器,資源服務(wù)器識別Access Token并返回資源;

3. 當(dāng)Access Token過期或失效,客戶端再一次訪問資源服務(wù)器,資源服務(wù)器返回“無效token”報錯;

4. 客戶端通過Refresh Token向認(rèn)證服務(wù)器換取Access Token,認(rèn)證服務(wù)器返回新的Access Token。

用一個現(xiàn)實生活中的比喻來解釋 Access/Refresh Token 的使用過程:

假設(shè)我在網(wǎng)上預(yù)定了一家酒店。如果要入住這家酒店,我必須出示身份相關(guān)信息和訂單。酒店前臺會登記相關(guān)信息和訂單信息,確認(rèn)無誤后會給我一張票據(jù)和一張房卡(票據(jù)記錄我需要入住多少天,而房卡則讓我有當(dāng)天的入住權(quán))。以上場景中,“身份相關(guān)信息和訂單”是我的用戶名密碼,“票據(jù)/房卡”是Refresh/Access Token,“前臺”是認(rèn)證服務(wù)器,“房間”是資源服務(wù)器。

在整個入住過程中,“身份相關(guān)信息和訂單”只在前臺使用一次;實際能進(jìn)入房間的是“房卡”,但是房卡只有一天的有效期;如果房卡過期,我需要憑“票據(jù)”去前臺刷新“房卡”,獲取第二天的入住權(quán)。將Token拆分成兩個,就是為了解決安全性和用戶體驗方面的矛盾——

  • Access Token使用頻繁,且與用戶數(shù)據(jù)直接關(guān)聯(lián),安全性方面比較敏感,因此有效期設(shè)置得較短,即使Access Token泄漏也將很快失效。利用過期時間較短這個特性,也可以及時更新用戶的訪問權(quán)限(比如管理員縮小了的某員工訪問公司數(shù)據(jù)的權(quán)限,當(dāng)Token過期后換取的新Access Token將立馬縮小其訪問數(shù)據(jù)的權(quán)限)。

  • 而 Refresh Token僅用于獲取新的Access Token,使用頻率較低,不與用戶數(shù)據(jù)直接關(guān)聯(lián),過期時間允許設(shè)置得長一些。這樣就解決了用戶反復(fù)登錄的問題。

實現(xiàn)對用戶會話的管理

站在系統(tǒng)管理員的角度,我們很容易想到去管理用戶的會話行為。一般來說,可以通過設(shè)置Token過期時間、設(shè)置結(jié)束會話的行為、手動結(jié)束用戶會話這三種方式來管理用戶會話。目前玉符IDaaS在Token標(biāo)準(zhǔn)應(yīng)用的基礎(chǔ)上,為管理員開放了自定義會話管理的功能,在提升系統(tǒng)管理員的運(yùn)維體驗上更進(jìn)一步——讓管理員真正“有能力管理”系統(tǒng)發(fā)放出去的Token,比如:會話過期時間設(shè)置(如圖3):

如何平衡Token安全性和用戶體驗

圖 3結(jié)束會話行為設(shè)置(如圖4):

如何平衡Token安全性和用戶體驗

圖 4手動結(jié)束用戶會話(如圖 5):

如何平衡Token安全性和用戶體驗

圖 5

綜上所述,通過 Access Token 和 Refresh Token 配套使用,我們得以很好的平衡 Token 時效性(安全性)與用戶體驗二者之間的關(guān)系,并利用 Refresh Token 的特點(diǎn)讓 IT 系統(tǒng)管理員真正有能力管理系統(tǒng)發(fā)放出去的Token,并實現(xiàn)“點(diǎn)對點(diǎn)”的結(jié)束會話操作。IDaaS(Identity as a Service)即身份認(rèn)證管理云平臺,它能提供多種標(biāo)準(zhǔn)化功能幫助用戶實現(xiàn)高效、安全的身份認(rèn)證管理服務(wù),如單點(diǎn)登錄、智能多因素認(rèn)證、賬號生命周期管理等等。

看完上述內(nèi)容,你們對如何平衡Token安全性和用戶體驗有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

新聞標(biāo)題:如何平衡Token安全性和用戶體驗
文章分享:http://www.muchs.cn/article38/ghjgpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司網(wǎng)站排名、做網(wǎng)站、建站公司App開發(fā)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計