Skip to Content

Webhooks verwalten

Webhooks ermöglichen es Auris, deine externen Systeme zu benachrichtigen, wenn Authentifizierungsereignisse auftreten — wie Benutzererstellung, Anmeldung, Passwortänderungen, Rollenzuweisungen und mehr. Anstatt die Auris-API auf Änderungen zu pollen, erhält dein Server Echtzeit-HTTP-POST-Benachrichtigungen mit Ereignisdetails.

Zugriff auf die Webhook-Verwaltung unter Konsole → Einstellungen → Webhooks.

Webhook-Übersicht

Die Webhooks-Seite zeigt alle konfigurierten Webhook-Endpunkte für deinen Tenant:

SpalteBeschreibung
NameEin beschreibender Name für den Webhook
URLDer Endpunkt, an den Auris Ereignisse sendet
EreignisseAnzahl der abonnierten Ereignistypen
StatusAktiv (grün) oder Inaktiv (grau)
Zuletzt verwendetZeitstempel der letzten Übermittlung
FehlerLetzte Fehlermeldung (wenn die letzte Übermittlung fehlgeschlagen ist)

Einen Webhook erstellen

Auf „Webhook erstellen” klicken

Klicke auf der Webhooks-Listenseite auf die Schaltfläche Webhook erstellen.

Webhook-Details eingeben

FeldErforderlichBeschreibung
NameJaEin beschreibender Name (z. B. „Slack-Benachrichtigungen”, „Analytics-Pipeline”, „CRM-Sync”)
URLJaDer HTTPS-Endpunkt, der Webhook-Payloads empfangen wird. Muss eine gültige URL sein, die mit https:// beginnt.
BeschreibungNeinZusätzlicher Kontext zur Verwendung dieses Webhooks

Ereignisse auswählen

Wähle, welche Ereignisse dieser Webhook empfangen soll. Ereignisse sind in Kategorien organisiert:

KategorieBeispielereignisse
Authentifizierunguser.login, user.logout, user.signup, user.password_changed
Benutzeruser.created, user.updated, user.deleted, user.email_verified
Rollenrole.created, role.updated, role.deleted, role.assigned, role.unassigned
Anwendungenapplication.created, application.updated, application.deleted
Organisationenorganization.created, member.added, member.removed, invitation.sent
MFAmfa.enabled, mfa.disabled, mfa.challenge_completed
Sitzungensession.created, session.revoked
Webhookswebhook.created, webhook.test

Klicke auf einzelne Ereignisse, um sie auszuwählen, oder verwende die Steuerelemente Alle auswählen / Alle abwählen in jeder Kategorie.

Beginne damit, nur die Ereignisse zu abonnieren, die du benötigst. Jedes Ereignis generiert einen Übermittlungsversuch, und übermäßige Abonnements können unnötige Last auf deinem empfangenden Endpunkt erzeugen. Du kannst später jederzeit weitere Ereignisse hinzufügen.

Speichern

Klicke auf Speichern. Der Webhook wird standardmäßig im aktiven Zustand erstellt.

Webhook-Geheimnis

Jedem Webhook wird bei der Erstellung ein Signierungsgeheimnis zugewiesen. Dieses Geheimnis wird verwendet, um HMAC-SHA256-Signaturen für jede Übermittlung zu generieren, sodass dein Server verifizieren kann, dass eingehende Webhooks tatsächlich von Auris stammen.

Das Geheimnis anzeigen

Das Signierungsgeheimnis wird einmalig sofort nach der Webhook-Erstellung in einem Bestätigungsdialog angezeigt. Es wird mit whsec_ vorangestellt zur leichten Identifizierung:

whsec_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6

Kopiere das Geheimnis und speichere es sicher in den Umgebungsvariablen deiner Anwendung. Das Geheimnis wird nach dem Schließen des Dialogs nicht mehr angezeigt.

Wenn du das Webhook-Geheimnis verlierst, kannst du es nicht abrufen. Du musst das Geheimnis rotieren, um ein neues zu generieren. Siehe Geheimnisse rotieren.

Webhook-Signaturen verifizieren

Jede Webhook-Übermittlung enthält zwei Header zur Signaturverifizierung:

HeaderBeschreibung
X-Webhook-SignatureHMAC-SHA256-Signatur des Anfrage-Body mit dem Webhook-Geheimnis
X-Webhook-TimestampUnix-Zeitstempel, wann die Übermittlung gesendet wurde (für Replay-Schutz)

Verifizierungsschritte auf deinem Server:

  1. Den X-Webhook-Timestamp-Header lesen
  2. Den Zeitstempel auf einen akzeptablen Rahmen prüfen (z. B. 5 Minuten), um Replay-Angriffe zu verhindern
  3. HMAC-SHA256(timestamp + "." + requestBody, webhookSecret) berechnen
  4. Die berechnete Signatur mit dem X-Webhook-Signature-Header vergleichen

Beispiel-Verifizierung in Node.js:

import { createHmac, timingSafeEqual } from 'crypto' function verifyWebhook( body: string, signature: string, timestamp: string, secret: string ): boolean { // Zeitstempel-Aktualität prüfen (5-Minuten-Fenster) const now = Math.floor(Date.now() / 1000) if (Math.abs(now - parseInt(timestamp)) > 300) { return false // Zu alt oder zu weit in der Zukunft } // Erwartete Signatur berechnen const payload = `${timestamp}.${body}` const expected = createHmac('sha256', secret) .update(payload) .digest('hex') // Zeitkonstanter Vergleich zur Verhinderung von Timing-Angriffen return timingSafeEqual( Buffer.from(signature), Buffer.from(expected) ) }

Webhooks testen

Bevor du in der Produktion bereitstellst, verifiziere, dass dein Endpunkt Webhook-Payloads korrekt empfängt und verarbeitet.

Test-Ereignis senden

Klicke auf der Webhook-Detailseite auf die Schaltfläche Test. Auris sendet ein Test-Ereignis an die konfigurierte URL mit einem Beispiel-Payload:

{ "event": "webhook.test", "timestamp": "2025-02-10T08:15:00Z", "data": { "message": "Dies ist eine Test-Webhook-Übermittlung von Auris." } }

Die Test-Übermittlung erscheint im Übermittlungs-Protokoll, sodass du den Antwort-Statuscode verifizieren und eventuelle Fehlermeldungen sehen kannst.

Webhook-Test-Werkzeuge verwenden

Für die Entwicklung kannst du einen Webhook-Testdienst wie webhook.site  oder ngrok  verwenden, um Webhook-Payloads zu empfangen und zu untersuchen:

  1. Erstelle eine temporäre URL mit deinem Test-Werkzeug
  2. Setze diese URL als Webhook-Endpunkt in der Konsole
  3. Löse Ereignisse aus (z. B. einen Test-Benutzer erstellen)
  4. Untersuche den empfangenen Payload im Test-Werkzeug
  5. Aktualisiere die Webhook-URL auf deinen Produktionsendpunkt, wenn bereit

Übermittlungen anzeigen

Jeder Webhook-Endpunkt hat ein Übermittlungsprotokoll, das jedes an ihn gesendete Ereignis zeigt.

Greife auf das Übermittlungsprotokoll zu, indem du einen Webhook in der Liste anklickst, um die Detailseite zu öffnen, und dann zum Abschnitt Übermittlungen scrollst.

SpalteBeschreibung
EreignisDer Ereignistyp (z. B. user.created)
StatusVon deinem Endpunkt zurückgegebener HTTP-Statuscode
ZeitstempelWann die Übermittlung gesendet wurde
DauerRoundtrip-Zeit in Millisekunden
VersucheAnzahl der Übermittlungsversuche (1 bei Erfolg, 2-3 bei Wiederholungen)

Übermittlungsstatus

StatuscodeBedeutung
2xx (200, 201, 204)Erfolg — dein Endpunkt hat die Übermittlung bestätigt
4xxClient-Fehler — dein Endpunkt hat den Payload abgelehnt (wird nicht wiederholt)
5xxServer-Fehler — dein Endpunkt hatte einen temporären Fehler (wird wiederholt)
TimeoutDein Endpunkt hat nicht innerhalb von 10 Sekunden geantwortet
NetzwerkfehlerDNS-Auflösung fehlgeschlagen oder Verbindung abgelehnt

Klicke auf eine Übermittlungszeile, um vollständige Details anzuzeigen:

  • Anfrage-Payload: Der an deinen Endpunkt gesendete JSON-Body
  • Antwort-Body: Die von deinem Endpunkt zurückgegebene Antwort (erste 1 KB)
  • Antwort-Header: Zurückgegebene HTTP-Header
  • Fehlermeldung: Falls die Übermittlung fehlgeschlagen ist, der spezifische Fehler

Fehlgeschlagene Übermittlungen wiederholen

Auris wiederholt fehlgeschlagene Übermittlungen (5xx, Timeout, Netzwerkfehler) automatisch mit exponentiellem Backoff:

VersuchVerzögerung nach Fehler
1. Wiederholung30 Sekunden
2. Wiederholung2 Minuten
3. Wiederholung10 Minuten

Nach 3 fehlgeschlagenen Versuchen wird die Übermittlung als fehlgeschlagen markiert und es werden keine weiteren automatischen Wiederholungen durchgeführt.

Manuelle Wiederholung

So wiederholst du eine fehlgeschlagene Übermittlung manuell:

  1. Öffne die Webhook-Detailseite
  2. Finde die fehlgeschlagene Übermittlung im Protokoll
  3. Klicke auf die Schaltfläche Wiederholen in dieser Übermittlungszeile

Die manuelle Wiederholung sendet exakt denselben Payload an die aktuelle Webhook-URL. Wenn du die URL seit der ursprünglichen Übermittlung geändert hast, geht die Wiederholung an die neue URL.

Wenn ein Webhook konsistent fehlschlägt, zeigt Auris ein Fehler-Badge beim Webhook in der Listenansicht an. Überprüfe das Übermittlungsprotokoll auf Fehlerdetails. Häufige Ursachen: Endpunkt ist nicht erreichbar, SSL-Zertifikat abgelaufen, Endpunkt gibt 401 zurück (Authentifizierung erforderlich) oder Antwort-Timeout (Endpunkt ist zu langsam).

Geheimnisse rotieren

Wenn du vermutest, dass ein Webhook-Geheimnis kompromittiert wurde, oder wenn du Geheimnisse als Teil einer Sicherheitsrichtlinie rotieren musst, kannst du ein neues Geheimnis generieren:

Webhook-Detailseite öffnen

Klicke auf den Webhook in der Liste, um seine Detailansicht zu öffnen.

Auf „Geheimnis rotieren” klicken

Klicke auf die Schaltfläche Geheimnis rotieren (oder finde sie im Aktionen-Dropdown-Menü).

Rotation bestätigen

Ein Bestätigungsdialog erscheint, der warnt, dass das alte Geheimnis sofort ungültig wird. Klicke auf Rotieren, um zu bestätigen.

Neues Geheimnis kopieren

Das neue whsec_-Geheimnis wird einmalig angezeigt. Kopiere es und aktualisiere die Umgebungsvariablen deiner Anwendung.

Wichtig: Die Rotation ist sofortig. Sobald du rotierst, ist das alte Geheimnis ungültig und alle nachfolgenden Übermittlungen werden mit dem neuen Geheimnis signiert. Wenn dein Endpunkt noch mit dem alten Geheimnis konfiguriert ist, werden Übermittlungen abgelehnt, bis du es aktualisierst. Plane für ein kurzes Fenster fehlgeschlagener Übermittlungen während der Rotation.

So minimierst du Unterbrechungen:

  1. Aktualisiere deinen Endpunkt-Code, um Signaturen von beiden alten oder neuen Geheimnissen zu akzeptieren
  2. Rotiere das Geheimnis in der Konsole
  3. Nachdem du bestätigt hast, dass Übermittlungen mit dem neuen Geheimnis erfolgreich sind, entferne das alte Geheimnis aus deinem Endpunkt-Code

Webhooks aktivieren und deaktivieren

Jeder Webhook hat einen Aktiv-Umschalter auf seiner Detailseite. Wenn deaktiviert:

  • Keine Ereignisse werden an den Endpunkt übermittelt
  • Die Webhook-Konfiguration bleibt erhalten (URL, Ereignisse, Geheimnis)
  • Im deaktivierten Zustand erscheinen keine Übermittlungen im Protokoll
  • Das Wiederaktivieren nimmt Übermittlungen für neue Ereignisse wieder auf (Ereignisse, die während der Deaktivierung aufgetreten sind, werden nicht erneut abgespielt)

Verwende dies, um Übermittlungen während der Endpunkt-Wartung vorübergehend zu pausieren, ohne die Webhook-Konfiguration zu verlieren.

Ereigniskategorien-Übersicht

Auris unterstützt über 50 Webhook-Ereignistypen, organisiert in folgenden Kategorien:

KategorieEreignisseBeschreibung
Authentifizierung8 EreignisseAnmeldung, Abmeldung, Registrierung, Passwortänderungen, MFA-Ereignisse
Benutzer6 EreignisseBenutzer CRUD, E-Mail-Verifizierung, Metadaten-Updates
Rollen5 EreignisseRollen CRUD, Rollen-Zuweisung/-Entfernung
Anwendungen4 EreignisseAnwendungen CRUD, Geheimnis-Rotation
Organisationen6 EreignisseOrg CRUD, Mitgliederverwaltung, Einladungen
Sitzungen3 EreignisseSitzungserstellung, -aktualisierung, -widerruf
Token3 EreignisseToken-Ausstellung, -Aktualisierung, -Widerruf
FGA4 EreignisseModellaktivierung, Tuple-Änderungen
Webhooks2 EreignisseWebhook-Erstellung, Test-Ereignisse
SCIM4 EreignisseSCIM-Provisionierungs-Sync-Ereignisse

Jeder Ereignis-Payload folgt einer konsistenten Struktur:

{ "event": "user.created", "timestamp": "2025-02-10T08:15:00Z", "tenantId": "acme-corp", "data": { // Ereignisspezifischer Payload } }

Das Feld data variiert je nach Ereignistyp und enthält die relevanten Entitätsdaten zum Zeitpunkt des Ereignisses.

Zugehörige Anleitungen