Aracılığıyla paylaş


CloudEvents şemasıyla uç nokta doğrulama

Web kancaları, Azure Event Grid'den olay almanın birçok yolu arasında yer alır. Yeni bir olay hazır olduğunda Event Grid hizmeti, istek gövdesindeki olay bilgileriyle yapılandırılmış uç noktaya bir HTTP isteği oluşturur.

Web kancalarını destekleyen diğer birçok hizmet gibi Event Grid de web kancası uç noktanıza olay göndermeye başlamadan önce web kancası uç noktanızın sahipliğini kanıtlamanızı gerektirir. Bu gereksinim, kötü amaçlı bir kullanıcının uç noktanızı olaylarla dolup taşmasını önler.

CloudEvents v1.0 ile uç nokta doğrulaması

CloudEvents v1.0, HTTP OPTIONS yöntemini kullanarak kendi kötüye kullanım koruma semantiğini uygular. Çıkış için CloudEvents şemasını kullandığınızda Event Grid, Event Grid doğrulama olay mekanizması yerine CloudEvents v1.0 kötüye kullanım korumasını kullanır.

CloudEvent v1.0 kötüye kullanım koruması

Bildirimlerin rastgele HTTP uç noktalarına kaydedilmesine ve teslimine izin veren herhangi bir sistem, kötü amaçlı olarak veya yanlışlıkla böyle istekler beklemeyen ve kayıt yapan tarafın böyle bir kayıt gerçekleştirme yetkisi olmayan bir sistemin adresini kaydedecek şekilde kötüye kullanılabilir. Aşırı durumlarda, rastgele bir web sitesine yönelik hizmet reddi saldırıları başlatmak için bir bildirim altyapısı kötüye kullanılabilir.

Gönderenin bu şekilde kötüye kullanılmasına karşı korumak için, meşru bir teslim hedefinin, ona gönderilen bildirimleri kabul ettiğini belirtmesi gerekir.

Teslimat sözleşmesine ulaşmak aşağıdaki doğrulama el sıkışması kullanılarak gerçekleştirilir. El sıkışma, kayıt zamanında hemen veya teslimden hemen önce bir "ön kontrol" isteği olarak yürütülebilir.

El sıkışmanın bir kimlik doğrulaması veya yetkilendirme bağlamı oluşturmayı hedeflemediğini anlamak önemlidir. Yalnızca göndereni trafiği beklemeden bir hedefe göndermeye göndermeye karşı korumaya hizmet eder. Bu belirtim bir yetkilendirme modelinin kullanılmasını zorunlu kılsa da, bu web sitesi erişim denetimi uygulamaz ve bu nedenle üst bilgiyi yoksayarsa Authorization , herhangi bir rastgele web sitesini istenmeyen trafikten korumak için yeterli değildir.

Teslim hedefleri kötüye kullanım koruma özelliğini desteklemeLIDIR. Bir hedef özelliği desteklemiyorsa, gönderen hedefe hiç göndermemeyi veya yalnızca çok düşük bir istek oranıyla göndermemeyi seçebilir.

Doğrulama isteği

Doğrulama isteği HTTP OPTIONS yöntemini kullanır. İstek, kayıtlı olan tam kaynak hedef URI'sine yönlendirilir. Doğrulama isteğiyle, gönderen hedefden bildirim gönderme izni ister ve istenen istek hızını (dakika başına istekler) bildirebilir. Teslim hedefi bir izin bildirimi ve izin verilen istek oranıyla yanıt verir. Aşağıda, doğrulama isteğine dahil edilmeye yönelik üst bilgi alanlarından birkaçı yer alır.

Web Kancası-İstek-Kaynak

Üst WebHook-Request-Origin bilgi doğrulama isteğine eklenmelidir ve bu gönderenden bildirim gönderme izni ister ve gönderen sistemi tanımlayan bir Etki Alanı Adı Sistemi (DNS) ifadesi içerir, örneğin eventemitter.example.com. Değerin amacı, tek bir ana bilgisayar yerine belirli bir sistem adına hareket eden tüm gönderen örneklerini özetlemektir.

El sıkışmadan sonra ve izin verildiyse, gönderen her teslim isteği için istek üst bilgisini, bu üst bilgiyle eşleşen değerle birlikte kullanmalıdır Origin .

Örnek:

WebHook-Request-Origin: eventemitter.example.com

Doğrulama yanıtı

Yalnızca teslim hedefi olayların teslimine izin verirse ve üst bilgilerini ekleyerek WebHook-Allowed-Origin WebHook-Allowed-Rate isteği yanıtlamaK ZORUNDADIR. Teslim hedefi geri çağırma yoluyla izin vermeyi seçerse yanıt üst bilgilerini saklar.

Teslim hedefi olayların teslimine izin vermiyorsa veya olayların teslimini beklemiyorsa ve yine de HTTP OPTIONS yöntemini işlerse, mevcut yanıt onay olarak yorumlanmamalıdır ve bu nedenle el sıkışması durum kodlarına dayanamaz. Teslim hedefi aksi takdirde HTTP OPTIONS yöntemini işlemiyorsa, SEÇENEKLER desteklenmiyor gibi HTTP durum kodu 405 ile yanıt vermelidir.

OPTIONS yanıtı POST yöntemine Allow izin verilen üst bilgiyi içermelidir. Kaynakta diğer yöntemlere izin verilebilir, ancak işlevleri bu belirtim kapsamının dışındadır.

Web Kancası İzin Verilen Çıkış Noktası

Teslim WebHook-Allowed-Origin hedefi, kaynak hizmet tarafından bildirim teslimini kabul ettiğinde üst bilgi döndürülmelidir. Değeri, üst bilgide sağlanan kaynak adı veya teslim hedefinin WebHook-Request-Origin tüm kaynaklardan gelen bildirimleri desteklediğini belirten tek bir yıldız karakteri ('*') olmalıdır.

WebHook-Allowed-Origin: eventemitter.example.com

Or

WebHook-Request-Origin: *

Önemli

Kötüye kullanım koruması hakkında daha fazla bilgi için olay teslim belirtimi için HTTP 1.1 Web Kancaları'nda kötüye kullanım koruması bölümüne bakın.

Olay aboneliği doğrulama sorunlarını gidermeyi öğrenmek için aşağıdaki makaleye bakın: Olay aboneliği doğrulama sorunlarını giderme.