Azure
Azure EventHub - 為每個編寫者創建 1 個服務主體或_這ROR多個證書(每個作者 1 個)超過 1 個服務主體
我想知道我的場景什麼是最好的。我了解通常每個應用程序只需要 1 個服務主體 (SP)。由於我沒有找到有關我的方案的任何明確答案,因此這裡是詳細資訊。
但是,讓我們假設以下情況:
- 我有一個小應用程序。安裝在我擁有的每個客戶處(假設有 100 個)
- 每個客戶將向 EventHub 發送事件(僅發送)
- 小應用程序使用憑據連接到我的服務,以便檢索事件中心的密鑰
- 我的服務連接到 azure,當小應用程序請求 EventHub 憑據時,我發回 Secret/Certificate
所以基本上,我應該:
- 為每個客戶管理 1 個 SP ?
- 為 SP 創建/管理許多秘密/證書(假設每個客戶 1 個)
- 從我的服務中使用 1 SP + 1 證書並使用它來創建一個新令牌,然後為我的小應用程序提供服務
- 退後一步,據我了解,一旦令牌正在使用中,我們就無法使其無效,直到它嘗試重新連接
注意:當然不是做3個,只做1個。
我在https://docs.microsoft.com/en-us/azure/event-hubs/authorize-access-shared-access-signature上看到了以下內容:
如果您的應用程序需要根據使用者或服務身份授予對事件中心資源的訪問權限,則應實現安全令牌服務,該服務在身份驗證和訪問檢查後頒發 SAS 令牌。
所以我的猜測是選項3是要走的路
最安全的選項是選項 3,讓您的應用在需要時生成 SAS 令牌,並使其生命週期盡可能短。這樣,如果您確實需要撤銷訪問權限,最大延遲就是 SAS 令牌的生命週期。