簡體   English   中英

如果服務之間的令牌過期怎么辦?

[英]What if token is expired between services?

我一直在閱讀服務/微服務之間的通信。

API網關對請求進行身份驗證,並傳遞一個訪問令牌(例如JSON Web令牌),該令牌在每個服務請求中安全地標識請求者。 服務可以在其對其他服務的請求中包括訪問令牌。

通過http://microservices.io

而且我將用戶的訪問令牌傳遞給下游服務,所以看起來或多或少是這樣的:

在此輸入圖像描述

但是如果微服務之間的令牌過期怎么辦?

有很多方法可以解決這個問題,這些似乎是合理的:

  • 驗證用戶的訪問令牌並在API網關中創建短期JWT(內部令牌的種類)

  • 每個微服務驗證JWT並生成其自己的JWT以根據范圍規則與其他微服務通信

在此輸入圖像描述

因此,我們將使用Auth服務來驗證或請求令牌。

任務是:

為了確保在通過服務的過程中令牌是否會過期,我們可以在API網關層中進行檢查:如果令牌在n(~1)分鍾內過期,則拒絕它,因此用戶必須使用刷新令牌獲取新的訪問令牌。 這意味着令牌始終在完成請求所需的時間內有效。 這種方法的優點和缺點是什么?

我有同樣的問題,所以Google引導我到這里來。 我希望半年后回答這個問題還為時不晚。

我不能說這是一個“答案”,但我希望我的想法可以啟發任何人的東西。 所以這是一種“想法分享”。

我認為有兩種方法可以解決這個問題:

  1. 如果令牌將在10分鍾后過期,請在6分鍾時刷新(僅舉例)。 因此,通過調整過期時間和刷新時間,確保您所說的情況永遠不會發生。

  2. 另一種方法是調整系統架構。 將API拆分為內部和外部。 將在API網關處檢查所有外部令牌,然后內部服務中沒有令牌。

我認為我們有很多方法可以避免這個問題提到的問題。 根據不同的特定項目要求,我們應該考慮使用不同的安全設計。 所以沒有“銀彈”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM