我有一個Web API服務,允許用戶創建新資源,如:POST /api/resource
。該服務然後將創建請求放在服務總線上並以HTTP 202 Accepted
作出響應。驗證服務總線後的過期JWT令牌
後臺進程從服務總線中獲取消息並調用數據訪問層來創建資源。但是,爲了執行訪問控制,數據訪問層需要知道用戶是由誰來決定是否允許他/她創建該資源。 我無法將此授權邏輯移入前端Web API,並將可信子系統用於數據訪問層。
所以我的解決辦法是讓對數據訪問層的訪問令牌,並將其與創建資源有效載荷存儲。但是這提出了一個問題。由於該消息可能會在重負載之後進行很多處理,因此令牌在後臺進程嘗試使用它時可能已過期。此時,無法更新令牌。
所以我想放寬在後端層處理令牌的有效性的要求。如果令牌有效(可信發行者等),但超過了過期時間,我希望驗證中間件接受該令牌。
但是沒有辦法配置System.IdentityModel.Tokens.Jwt
令牌處理程序來驗證過期的令牌。這可以在沒有寫我自己的令牌驗證器的情況下完成嗎?
我的方法錯了嗎?什麼是解決這個問題的可行方案?
問:當令牌被添加到服務總線開始時,令牌是否有效(如授權)?或者我誤解了你的問題 – Nkosi
@Nkosi當然,該標記在Web服務獲取它時有效。但是在工作人員服務使用它時可能會過期。服務總線創建暫時解耦。消息可以在服務總線上處理,或者在一小時後處理。 – MvdD
沒錯。因此即使令牌過期,與JWT關聯的包含用戶仍可以在後端提取以進行訪問控制。你對JWT有多瞭解?我問,因爲我的想法可能看起來是手動的,你需要知道解碼智威湯遜 – Nkosi