Megosztás a következőn keresztül:


Végpont érvényesítése a CloudEvents-sémával

A webhookok egyike annak a számos módszernek, ahányszor az Azure Event Gridből fogadhatja az eseményeket. Ha egy új esemény készen áll, az Event Grid szolgáltatás EGY HTTP-kérést küld a konfigurált végpontnak a kérelem törzsében található eseményinformációkkal.

Sok más webhookot támogató szolgáltatáshoz hasonlóan az Event Grid is megköveteli, hogy igazolja a Webhook-végpont tulajdonjogát, mielőtt megkezdené az események kézbesítését az adott végpontra. Ez a követelmény megakadályozza, hogy egy rosszindulatú felhasználó eseményekkel elárasztsa a végpontot.

Végpont-ellenőrzés a CloudEvents 1.0-s verzióval

A CloudEvents 1.0-s verzió saját visszaélésvédelmi szemantikáját implementálja a HTTP OPTIONS metódussal. Amikor a CloudEvents sémát használja a kimenethez, az Event Grid az Event Grid érvényesítési eseménymechanizmus helyett a CloudEvents v1.0 visszaélés elleni védelmet használja.

CloudEvent v1.0 visszaélés elleni védelem

Bármely olyan rendszer, amely lehetővé teszi az értesítések regisztrációját és továbbítását tetszőleges HTTP-végpontokra, potenciálisan visszaélhet, hogy valaki rosszindulatúan vagy véletlenül regisztrálja egy olyan rendszer címét, amely nem vár ilyen kéréseket, és amelyekre a regisztráló fél nem jogosult ilyen regisztráció végrehajtására. Szélsőséges esetekben az értesítési infrastruktúrával vissza lehet élni, hogy szolgáltatásmegtagadásos támadásokat indítsunk egy tetszőleges webhely ellen.

Annak érdekében, hogy megvédje a feladót az ilyen módon történő visszaéléstől, a jogos kézbesítési célnak jeleznie kell, hogy egyetért az értesítések kézbesítésével.

A szállítási szerződés elérése az alábbi ellenőrzési kézfogással történik. A kézfogás azonnal végrehajtható a regisztrációkor, vagy "előzetes" kérésként közvetlenül a kézbesítés előtt.

Fontos tisztában lenni azzal, hogy a kézfogás nem arra irányul, hogy hitelesítési vagy engedélyezési környezetet hozzon létre. Csak arra szolgál, hogy megvédje a feladót attól, hogy egy olyan helyre küldjön leküldést, amely nem számít a forgalomra. Bár ez a specifikáció egy engedélyezési modell használatát határozza meg, ez a felhatalmazás nem elegendő ahhoz, hogy bármilyen tetszőleges webhelyet megvédjen a nemkívánatos forgalomtól, ha a webhely nem implementálja a hozzáférés-vezérlést, ezért figyelmen kívül hagyja a Authorization fejlécet.

A kézbesítési céloknak támogatniuk kell a visszaélések elleni védelmet. Ha egy cél nem támogatja a funkciót, a feladó dönthet úgy, hogy egyáltalán nem küld a célnak, vagy csak nagyon alacsony kérési sebességgel küld.

Érvényesítési kérelem

Az érvényesítési kérelem a HTTP OPTIONS metódust használja. A kérés a regisztrálandó erőforrás-cél URI-ra lesz irányítva. Az érvényesítési kéréssel a feladó engedélyt kér a célnak az értesítések küldésére, és deklarálhatja a kívánt kérési arányt (kérések percenként). A kézbesítési cél egy engedélykimutatással és az engedélyezett kérési gyakorisággal válaszol. Az alábbiakban néhány fejlécmező szerepel az érvényesítési kérelemben.

WebHook-Request-Origin

A WebHook-Request-Origin fejlécnek szerepelnie kell az érvényesítési kérelemben, és engedélyt kell kérnie arra, hogy értesítéseket küldjön a feladótól, és tartalmaz egy dns-kifejezést, amely azonosítja például eventemitter.example.coma küldő rendszert. Az érték célja, hogy összegzően azonosítsa az összes olyan feladópéldányt, amely egy adott rendszer nevében jár el, és nem egy adott gazdagépet.

A kézfogás után és ha az engedély meg lett adva, a feladónak minden kézbesítési kérelemhez a kérelem fejlécét kell használnia Origin a fejléc értékével.

Példa:

WebHook-Request-Origin: eventemitter.example.com

Érvényesítési válasz

Ha és csak akkor, ha a kézbesítési cél lehetővé teszi az események kézbesítését, akkor a kérésre a fejlécek és WebHook-Allowed-Rate a WebHook-Allowed-Origin fejlécek belevéve kell válaszolnia. Ha a kézbesítési cél úgy dönt, hogy visszahívással ad engedélyt, visszatartja a válaszfejléceket.

Ha a kézbesítési cél nem teszi lehetővé az események kézbesítését, vagy nem várja el az események kézbesítését, és mégis kezeli a HTTP OPTIONS metódust, a meglévő választ nem kell hozzájárulásként értelmezni, ezért a kézfogás nem támaszkodhat az állapotkódokra. Ha a kézbesítési cél egyébként nem kezeli a HTTP OPTIONS metódust, a 405-ös HTTP-állapotkóddal kell válaszolnia, mintha a BEÁLLÍTÁSOK nem támogatott volna.

Az OPTIONS válasznak tartalmaznia kell a Allow POST metódust engedélyező fejlécet. Más metódusok is engedélyezhetők az erőforráson, de a függvényük nem tartozik a specifikáció hatókörébe.

WebHook-Allowed-Origin

A WebHook-Allowed-Origin fejlécet vissza kell adni, ha a kézbesítési cél beleegyezik, hogy a forrásszolgáltatás értesítést küld a kézbesítésről. Az értéknek vagy a fejlécben WebHook-Request-Origin megadott forrásnévnek kell lennie, vagy egy csillag karakternek (*) kell lennie, amely azt jelzi, hogy a kézbesítési cél támogatja az összes forrás értesítéseit.

WebHook-Allowed-Origin: eventemitter.example.com

Vagy

WebHook-Request-Origin: *

Fontos

A visszaélések elleni védelemről további információt a HTTP 1.1 webhookok eseménykézbesítési specifikációjában talál.

Az alábbi cikkből megtudhatja, hogyan háríthatja el az esemény-előfizetések érvényesítési hibáit: Az esemény-előfizetések érvényesítésének hibaelhárítása.