有在我們的系統中三個連通方:基於聲明的訪問控制 - 如何實現'系統'用戶?
- 前端
- 服務A
- 服務B
再加上我們有獨立的安全令牌服務,我們的身份提供者。
經過身份驗證的用戶與Frontend進行交互,它調用服務A,服務A又調用服務B.用戶的訪問令牌使用「poor's man identity delegation」通過此管道傳遞。服務A和服務B授權(或不授權)基於通過的身份聲明的用戶操作。大家都很開心!
但是現在我遇到了服務A在操作過程中沒有用戶上下文的情況。它發生:
- 啓動期間
- 當服務A從消息總線處理消息
- 當計時器觸發
在每種情況下,服務A需要調用服務B,以獲得一些數據,但它收到401,因爲沒有訪問令牌傳遞給服務B.
是否有任何最佳實踐如何處理這種情況?我現在頭腦中唯一的想法是在我們的身份提供商處註冊'系統'用戶(每個服務A,服務B,服務C等的可能用戶),獲得該用戶的訪問令牌並在上述情況下使用它。但是我聞起來不好,我正在尋找其他的想法。
任何建議,將不勝感激。謝謝!