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.com
a 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.
Kapcsolódó tartalom
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.