事件
Azure Web PubSub 服務的應用程式防火牆 (預覽)
應用程式防火牆提供對分散式系統中用戶端連線的複雜控制。 在深入探索其功能和設定之前,讓我們來釐清應用程式防火牆不會執行的動作:
- 它不會取代驗證。 防火牆會在用戶端連線驗證層後方運作。
- 這與網路層訪問控制無關。
應用程式防火牆是由各種規則清單所組成。 目前,有兩個規則清單稱為 用戶端連線計數規則 和 用戶端流量控制規則。 未來的更新將支援更多規則清單,以控制連線存留期等層面。
此指導方針分為三個部分:
- 不同的應用程式防火牆規則的簡介。
- 在 Web PubSub 服務端使用入口網站或 Bicep 設定規則的指示。
- 在伺服器端設定權杖的步驟。
- 進階層級中的 Web PubSub 資源。
用戶端連線計數規則會限制同時用戶端連線。 當用戶端嘗試建立新的連線時,會循序檢查規則。 如果違反任何規則,則會拒絕連線並顯示狀態碼 429。
此規則會限制使用者的同時連線。 例如,如果使用者開啟多個瀏覽器索引標籤,或使用不同的裝置登入,您可以使用此規則來限制該使用者的同時連線數目。
注意
- UserId 必須存在於存取權杖中,此規則才能運作。 請參閱設定存取權杖。
此規則會限制相同權杖的同時連線,以防止惡意使用者重複使用權杖來建立無限連線,這可能會耗盡連線配額。
注意
- 根據預設,不保證 SDK 所產生的權杖每次都會不同。 雖然每個權杖都包含時間戳記,但如果在幾秒內產生大量權杖,則此時間戳記可能會相同。 若要避免完全相同的權杖,請將隨機宣告插入至權杖宣告中。 請參閱設定存取權杖。
警告
- 避免使用過於積極的 maxCount。 用戶端連線可能會在未完成 TCP 交握的情況下關閉。 SignalR 服務無法立即偵測到那些「半關閉」的連線。 連線會被視為作用中,直到活動訊號失敗為止。 因此,積極的節流策略可能會意外地對用戶端進行節流。 較順暢的方法是讓連線計數保留一些緩衝區,例如:加倍 maxCount。
用戶端流量控制規則會限制用戶端連線的輸入輸送量。 當客戶端嘗試傳送訊息時,會循序檢查規則。 在每個 匯總視窗中,將會匯總訊息大小,以檢查輸入 訊息的最大值。 如果違反任何規則,連線就會中斷連線。
此規則會限制使用者的輸入輸送量。
此規則會限制每個令牌的輸入輸送量。
只有在存取權杖包含對應的宣告時,應用程式防火牆規則才會生效。 如果連線沒有對應的宣告,則會略過規則。 *userId" 和角色目前在 SDK 中支援宣告。
以下是在存取權杖中新增 userId 並插入唯一預留位置的範例:
// The GUID role wont have any effect. But it ensures this token's uniqueness when using rule ThrottleByJwtSignatureRule.
var url = service.GetClientAccessUri((userId: "user1" , roles: new string[] { "webpubsub.joinLeaveGroup.group1", Guid.NewGuid().ToString()});
如需詳細資訊,請參閱用戶端交涉。
其他資源
訓練
模組
Azure Web 應用程式防火牆簡介 - Training
描述 Azure Web 應用程式防火牆如何保護 Azure Web 應用程式免於遭受常見的攻擊,內容包括其功能、部署方式及常見的使用案例。
認證
Microsoft Certified: Identity and Access Administrator Associate - Certifications
示範 Microsoft Entra ID 的功能,以現代化身分識別解決方案、實作混合式解決方案,以及實作身分識別治理。