針對 Azure 事件方格的訂閱驗證進行疑難排解
在事件訂閱建立期間,如果您看到錯誤訊息,例如 The attempt to validate the provided endpoint https://your-endpoint-here failed. For more details, visit https://aka.ms/esvalidation
,表示驗證交握失敗。 若要解決此錯誤,請執行以下幾方面的驗證:
- 使用 curl 或類似工具,以範例 SubscriptionValidationEvent 作為要求本文,向 Webhook URL 執行 HTTP POST。
- 如果您的 Webhook 正在實作同步驗證交握機制,請確認 ValidationCode 已當成回應的一部分回傳。
- 如果您的 Webhook 正在實作非同步驗證交握機制,請確認您執行的 HTTP POST 傳回 200 OK。
- 如果您的 Webhook 在回應中傳回
403 (Forbidden)
,請檢查您的 Webhook 是否位於 Azure 應用程式閘道或 Web 應用程式防火牆後方。 如果是,則您必須停用這些防火牆規則,然後再次執行 HTTP POST:- 920300 (要求遺漏 Accept 標頭)
- 942430 (受限制的 SQL 字元異常偵測 (args):超出的特殊字元數目 (12))
- 920230 (偵測到多個 URL 編碼)
- 942130 (SQL 插入式攻擊:偵測到 SQL 恆真式。)
- 931130 (可能的遠端檔案包含 (RFI) 攻擊:關閉網域參考/連結)
重要
如需 Webhook 端點驗證的詳細資訊,請參閱 Webhook 事件傳遞。
以下是範例 SubscriptionValidationEvent JSON,您可以使用 CURL 等工具傳送:
[
{
"id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66",
"topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"subject": "",
"data": {
"validationCode": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
},
"eventType": "Microsoft.EventGrid.SubscriptionValidationEvent",
"eventTime": "2018-01-25T22:12:19.4556811Z",
"metadataVersion": "1",
"dataVersion": "1"
}
]
以下是成功回應的範例:
{
"validationResponse": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
}
使用 Curl 驗證事件方格的事件訂閱
以下範例 Curl 命令是用來驗證事件方格事件的 Webhook 訂閱:
curl -X POST -d '[{"id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66","topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","subject": "","data": {"validationCode": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"},"eventType": "Microsoft.EventGrid.SubscriptionValidationEvent","eventTime": "2018-01-25T22:12:19.4556811Z", "metadataVersion": "1","dataVersion": "1"}]' -H 'Content-Type: application/json' https://{your-webhook-url.com}
若要深入瞭解 Webhook 的事件方格事件驗證,請參閱事件方格事件的端點驗證。
驗證雲端事件訂閱
使用 HTTP 選項方法進行雲端事件驗證。 若要深入瞭解 Webhook 的雲端事件驗證,請參閱雲端事件的端點驗證。
針對事件訂用帳戶驗證進行疑難排解
下一步
如果您需要更多協助,請將您的問題張貼在 Stack Overflow 論壇,或開啟支援票證。