Über Webhooks
Erfahren Sie, was Webhooks sind, wann Sie sie verwenden sollten und wie Sie eine Webhook-Integration absichern.
Webhooks ermöglichen es Blazelock, Ihre Anwendung zu benachrichtigen, sobald sich etwas ändert. Anstatt den aktuellen Scan-Status wiederholt abzufragen, erhält Ihr System eine HTTP-POST-Anfrage, wenn ein relevantes Ereignis eintritt.
Für die meisten asynchronen Scan-Abläufe ist dies der effizientere Weg, um mit Blazelock synchron zu bleiben.
Warum Webhooks verwenden?
- Erhalten Sie Scan-Updates nahezu in Echtzeit, anstatt auf das nächste Polling-Intervall zu warten.
- Reduzieren Sie unnötige API-Anfragen, indem Sie wiederholte Statusabfragen für unveränderte Scans vermeiden.
- Lösen Sie nachgelagerte Workflows automatisch aus, sobald relevante Webhook-Ereignisse zugestellt werden.
- Halten Sie den Zustand Ihrer Anwendung und Ihrer internen Systeme mit dem aktuellen Scan-Status synchron.
Erste Schritte
- Richten Sie einen HTTPS-Endpunkt ein, der
POST-Anfragen von Blazelock empfangen kann. - Hinterlegen Sie Ihre Webhook-URL im Blazelock Dashboard für die jeweilige API-Anbindung.
- Implementieren Sie Handler für die Webhook-Ereignisse, die Ihre Anwendung verarbeiten soll.
Die Validierung von Webhook-Signaturen ist für den Einstieg nicht zwingend erforderlich, wir empfehlen sie jedoch ausdrücklich, damit Ihre Anwendung verifizieren kann, dass eingehende Ereignisse von Blazelock gesendet wurden.
Zustellung & Retry-Versuche
Blazelock erwartet, dass Ihr Endpunkt innerhalb von 15 Sekunden mit einem 2xx-Statuscode antwortet. Wenn Ihr Endpunkt eine Nicht-2xx-Antwort zurückgibt oder die Anfrage in ein Timeout läuft, gilt die Zustellung als fehlgeschlagen und wird automatisch erneut versucht.
Deshalb sollten Webhook-Handler die Anfrage zügig bestätigen und länger laufende Verarbeitung in Hintergrundjobs, Queues oder asynchrone Worker auslagern.
Blazelock führt derzeit insgesamt bis zu 10 Zustellversuche durch:
| Versuch | Verzögerung nach dem vorherigen Versuch | Ungefähre Zeit seit dem ersten Versuch |
|---|---|---|
| 1 | Sofort | Sofort |
| 2 | 1 Minute | 1 Minute |
| 3 | 2 Minuten | 3 Minuten |
| 4 | 5 Minuten | 8 Minuten |
| 5 | 10 Minuten | 18 Minuten |
| 6 | 30 Minuten | 48 Minuten |
| 7 | 1 Stunde | 1 Stunde 48 Minuten |
| 8 | 2 Stunden | 3 Stunden 48 Minuten |
| 9 | 4 Stunden | 7 Stunden 48 Minuten |
| 10 | 22 Stunden | 29 Stunden 48 Minuten |
Jeder Zustellversuch wird einzeln signiert. Das bedeutet, dass der Webhook-Zeitstempel und die Signatur den jeweils gesendeten Retry-Versuch widerspiegeln.
Sicherheit ist wichtig
Blazelock signiert jede Webhook-Anfrage und sendet Security-Header mit, deren Validierung wir vor der Verarbeitung des Payloads empfehlen. Das hilft dabei, Ihren Endpunkt vor gefälschten Anfragen und Replay-Angriffen zu schützen. Weitere Informationen finden Sie in unserem Leitfaden zur Validierung von Webhook-Signaturen.
Best Practices
- Zuerst validieren: Prüfen Sie Zeitstempel und Signatur, bevor Sie dem Payload vertrauen. Weitere Informationen finden Sie in unserem Leitfaden zur Validierung von Webhook-Signaturen.
- Schnell antworten: Geben Sie einen
2xx-Statuscode zurück, sobald das Ereignis zur Verarbeitung angenommen wurde. - Ereignisse idempotent verarbeiten: Ihre Verarbeitung sollte auch dann korrekt funktionieren, wenn dasselbe Ereignis mehrfach zugestellt wird.
- Asynchron verarbeiten: Verlagern Sie aufwendige Logik aus dem Request-Zyklus in Hintergrund-Worker.