Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Webhook uç noktası için Event Grid olay aboneliği oluşturduğunuzda, Event Grid olayı teslim etmeden önce uç noktaya sahip olduğunuzu doğrulamalıdır. Eğer o doğrulama el sıkışması tamamlanmazsa, abonelik oluşturma başarısız olur. Bu makale, el sıkışmanın neden başarısız olduğunu ve nasıl çözüleceğini anlamanıza yardımcı olur.
Symptoms
Bir etkinlik aboneliği oluşturduğunuzda, aşağıdaki metne benzer bir hata mesajı görürsünüz:
The attempt to validate the provided endpoint https://your-endpoint-here failed. For more details, visit https://aka.ms/esvalidation
Hata, Event Grid'in doğrulama el sıkışmasını webhook uç noktanızla tamamlayamadığını, bu yüzden aboneliği oluşturmadığını gösteriyor.
Cause
Event Grid, olayları teslim etmeye başlamadan önce bir webhook uç noktasının sahipliğini kanıtlamanızı gerektirir. Bu gereklilik, kötü niyetli bir kullanıcının bir uç noktayı olaylarla doldurmasını engeller. Doğrulama hatası, Event Grid ile uç noktanız arasındaki el sıkışma başarılı olmadığında ortaya çıkar. Yaygın nedenler şunlardır:
- Uç noktanız, eşzamanlı el sıkışması için doğrulama kodunu geri döndürmüyor veya eşzamansız (manuel) el sıkışması için
200 OKdöndürmüyor. - Uç noktanızın önündeki bir güvenlik duvarı, Azure Application Gateway veya web uygulama güvenlik duvarı (WAF) doğrulama talebini engeller ve döndürür
403 (Forbidden). - Uç noktanız CloudEvents v1.0 şemasını kullanır ancak HTTP OPTIONS doğrulama isteğine yanıt vermez.
- Uç noktanız kendi kendine imzalanmış bir sertifika kullanır, ancak Event Grid doğrulama için bunu desteklemez.
Doğrulama el sıkışmasının tam açıklaması için Event Grid olay şeması ile Uç nokta doğrulaması ve CloudEvents şeması kullanılarak Uç nokta doğrulaması bölümlerine bakınız.
Çözüm 1: Event Grid şema aboneliği için doğrulama el sıkışmasını test edin
Webhook'unuza örnek bir SubscriptionValidationEvent gönderin ve cevabı onaylayın:
- Curl veya benzer bir araç kullanarak örnek istek gövdesi ile webhook URL'nize
SubscriptionValidationEventHTTP POST isteği gönderin. - Webhook'unuz eşzamanlı el sıkışma işlemini uyguluyorsa, webhook'unuzun yanıtta
validationCodedöndürdüğünü doğrulayın. BirHTTP 200 OKdurum kodu döndürmeniz gerekir. Event Grid geçerli bir yanıt olarak tanımıyorHTTP 202 Acceptedve talebin 30 saniye içinde tamamlanması gerekiyor. - Webhook’unuz asenkron (manuel) el sıkışmasını kullanıyorsa, uç noktanızın
200 OKdöndürdüğünü doğrulayın. Sonra 10 dakika içinde olay verilerine bir GET talebivalidationUrlgöndererek el sıkışmayı tamamlayın. Doğrulama URL'si port 553'ü kullanıyor, bu yüzden o port engellenirse güvenlik duvarı kurallarınızı güncelleyin.
İşte gönderebileceğiniz örnek SubscriptionValidationEvent bir JSON yükü:
[
{
"id": "aaaa0000-bb11-2222-33cc-444444dddddd",
"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"
}
]
İşte beklenen başarılı yanıt:
{
"validationResponse": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
}
İşte Event Grid olay şemasını kullanan bir webhook aboneliğini doğrulamak için eşdeğer curl komutu:
curl -X POST -d '[{"id": "aaaa0000-bb11-2222-33cc-444444dddddd","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}
Daha fazla bilgi için Event Grid olay şeması ile Uç nokta doğrulaması bölümüne bakınız.
Çözüm 2: Doğrulama talebini engelleyen güvenlik duvarı veya WAF kurallarını kaldırın
Webhook'unuz yanıt olarak 403 (Forbidden) döndürüyorsa, Azure Application Gateway veya web uygulaması güvenlik duvarının arkasında olup olmadığını denetleyin. Eğer öyleyse, aşağıdaki güvenlik duvarı kurallarını devre dışı bırakın ve HTTP POST'u tekrar yapın:
- 920300 (İstekte kabul üst bilgisi eksik)
- 942430 (Kısıtlı SQL karakter anomalisi algılama (args): özel karakter sayısı aşılmış (12))
- 920230 (Birden çok URL kodlama algılandı)
- 942130 (SQL enjeksiyon saldırısı: SQL totolojisi tespit edildi)
- 931130 (Olası uzaktan dosya dahil etme (RFI) saldırısı: alan dışı referans veya bağlantı)
Çözüm 3: CloudEvents şema aboneliğini doğrulama
Aboneliğiniz CloudEvents v1.0 şemasını kullanıyorsa, Event Grid abonelik doğrulama etkinliği yerine CloudEvents kötüye kullanım korumasını kullanır. Uç noktanız HTTP OPTIONS yöntemine yanıt vermeli ve başlığı WebHook-Allowed-Origin geri göndermelidir. Daha fazla bilgi için CloudEvents şeması kullanılarak uç nokta doğrulaması bölümüne bakınız.
İlgili içerik
Daha fazla yardıma ihtiyacınız varsa, sorularınızı Microsoft Soru-Cevap bölümünde sorun. Event Grid için bir sayfa veya destek bileti açın.