分享方式:


向事件處理常式驗證事件傳遞 (Azure 事件方格)

本文提供向事件處理常式驗證事件傳遞的相關資訊。

概觀

Azure 事件方格使用不同的驗證方法來向事件處理常式傳遞事件。 `

驗證方法 支援的事件處理常式 描述
存取金鑰 - 事件中樞
- 服務匯流排
- 儲存體佇列
- 轉送混合式連線
- Azure Functions
- 儲存體 Blob (無效)
存取金鑰是使用事件方格服務主體的認證來擷取。 在其 Azure 訂用帳戶中註冊事件方格資源提供者時,會授與事件方格權限。
受控系統識別
&
角色型存取控制
- 事件中樞
- 服務匯流排
- 儲存體佇列
- 儲存體 Blob (無效)
啟用主題的受控系統識別,並將它新增至目的地的適當角色。 如需詳細資料,請參閱針對傳遞事件使用系統指派的身分識別
使用 Microsoft Entra 保護的 Webhook 的持有人權杖驗證 Webhook 如需詳細資料,請參閱驗證對 Webhook 端點的事件傳遞一節。
用戶端秘密作為查詢參數 Webhook 如需詳細資料,請參閱使用用戶端密碼作為查詢參數一節。

注意

如果您使用 Microsoft Entra 應用程式來保護 Azure 函式,則必須採用一般 Webhook 方法,使用 HTTP 觸發程序。 新增訂閱時,請使用 Azure 函式端點作為 Webhook URL。

針對傳遞事件使用系統指派的身分識別

您可以啟用主題或網域的系統指派受控識別,並使用身分識別將事件轉送至支援的目的地,例如服務匯流排佇列和主題、事件中樞和儲存體帳戶。

以下為其步驟:

  1. 建立帶有系統指派的身分識別的主題或網域,或更新現有主題或網域以啟用身分識別。 如需詳細資訊,請參閱啟用系統主題的受控識別啟用自訂主題或網域的受控識別
  2. 將身分識別新增至目的地 (例如,服務匯流排佇列) 的適當角色 (例如,服務匯流排資料傳送者)。 如需詳細資訊,請參閱將事件方格目的地的存取權授與身分識別
  3. 建立事件訂用帳戶時,請啟用使用身分識別,以將事件傳遞至目的地。 如需詳細資訊,請參閱建立使用身分識別的事件訂用帳戶

如需詳細的逐步指示,請參閱使用受控識別傳遞事件

驗證對 Webhook 端點的事件傳遞

下列各節說明如何驗證對 Webhook 端點的事件傳遞。 無論您使用哪種方法,請使用驗證交握機制。 如需詳細資訊,請參閱 Webhook 事件傳遞

使用 Microsoft Entra ID

您可以使用 Microsoft Entra ID,保護用來從事件方格接收事件的 Webhook 端點。 您必須建立 Microsoft Entra 應用程式、在授權事件方格的應用程式中建立角色和服務主體,以及將事件訂用帳戶設定為使用 Microsoft Entra 應用程式。 了解如何使用事件方格設定 Microsoft Entra ID

使用用戶端秘密作為查詢參數

您也可以在建立事件訂閱時將查詢參數新增至指定的 Webhook 目的地 URL,以保護您的 Webhook 端點。 將這些查詢參數中的其中一個設定為用戶端祕密,例如存取權杖或共用秘密。 事件方格服務會在 Webhook 的每個事件傳遞要求中包含這些查詢參數。 Webhook 服務可以擷取和驗證祕密。 如果用戶端秘密已更新,則也需要更新事件訂用帳戶。 為避免在此秘密輪替期間發生傳遞失敗,請在有限的期間內讓 Webhook 接受舊秘密與新秘密,然後再利用新祕密更新事件訂閱。

由於查詢參數可能包含用戶端密碼,因此會特別小心加以處理。 密碼會以加密方式儲存,且不能供服務操作員存取。 其不會記錄為服務記錄/追蹤的一部分。 在擷取事件訂閱屬性時,預設不會傳回目的地查詢參數。 例如:--include-full-endpoint-url 參數將用於 Azure CLI 中。

如需將事件傳遞至 Webhook 的詳細資訊,請參閱 Webhook 事件傳遞

重要

Azure 事件方格僅支援 HTTPS Webhook 端點。

使用 CloudEvents v1.0 進行端點驗證

如果您已經熟悉事件方格,可能會注意到端點驗證交握可防止濫用。 CloudEvents v1.0 會使用 HTTP OPTIONS 方法,實作自己的濫用保護語義。 若要深入了解,請參閱用於傳遞事件的 HTTP 1.1 Webhook - 1.0 版。 使用 CloudEvents 結構描述進行輸出時,事件方格會使用 CloudEvents v1.0 濫用保護來取代事件方格驗證事件機制。 如需詳細資訊,請參閱搭配使用 CloudEvents v1.0 結構描述與事件方格

下一步

請參閱驗證發佈用戶端,以了解驗證將事件發佈至主題或網域的用戶端。