[英]What if token is expired between services?
我一直在閱讀服務/微服務之間的通信。
API網關對請求進行身份驗證,並傳遞一個訪問令牌(例如JSON Web令牌),該令牌在每個服務請求中安全地標識請求者。 服務可以在其對其他服務的請求中包括訪問令牌。
而且我將用戶的訪問令牌傳遞給下游服務,所以看起來或多或少是這樣的:
但是如果微服務之間的令牌過期怎么辦?
有很多方法可以解決這個問題,這些似乎是合理的:
驗證用戶的訪問令牌並在API網關中創建短期JWT(內部令牌的種類)
每個微服務驗證JWT並生成其自己的JWT以根據范圍規則與其他微服務通信
因此,我們將使用Auth服務來驗證或請求令牌。
任務是:
為了確保在通過服務的過程中令牌是否會過期,我們可以在API網關層中進行檢查:如果令牌在n(~1)分鍾內過期,則拒絕它,因此用戶必須使用刷新令牌獲取新的訪問令牌。 這意味着令牌始終在完成請求所需的時間內有效。 這種方法的優點和缺點是什么?
我有同樣的問題,所以Google引導我到這里來。 我希望半年后回答這個問題還為時不晚。
我不能說這是一個“答案”,但我希望我的想法可以啟發任何人的東西。 所以這是一種“想法分享”。
我認為有兩種方法可以解決這個問題:
如果令牌將在10分鍾后過期,請在6分鍾時刷新(僅舉例)。 因此,通過調整過期時間和刷新時間,確保您所說的情況永遠不會發生。
另一種方法是調整系統架構。 將API拆分為內部和外部。 將在API網關處檢查所有外部令牌,然后內部服務中沒有令牌。
我認為我們有很多方法可以避免這個問題提到的問題。 根據不同的特定項目要求,我們應該考慮使用不同的安全設計。 所以沒有“銀彈”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.