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:
| Spalte | Beschreibung |
|---|---|
| Name | Ein beschreibender Name für den Webhook |
| URL | Der Endpunkt, an den Auris Ereignisse sendet |
| Ereignisse | Anzahl der abonnierten Ereignistypen |
| Status | Aktiv (grün) oder Inaktiv (grau) |
| Zuletzt verwendet | Zeitstempel der letzten Übermittlung |
| Fehler | Letzte 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
| Feld | Erforderlich | Beschreibung |
|---|---|---|
| Name | Ja | Ein beschreibender Name (z. B. „Slack-Benachrichtigungen”, „Analytics-Pipeline”, „CRM-Sync”) |
| URL | Ja | Der HTTPS-Endpunkt, der Webhook-Payloads empfangen wird. Muss eine gültige URL sein, die mit https:// beginnt. |
| Beschreibung | Nein | Zusätzlicher Kontext zur Verwendung dieses Webhooks |
Ereignisse auswählen
Wähle, welche Ereignisse dieser Webhook empfangen soll. Ereignisse sind in Kategorien organisiert:
| Kategorie | Beispielereignisse |
|---|---|
| Authentifizierung | user.login, user.logout, user.signup, user.password_changed |
| Benutzer | user.created, user.updated, user.deleted, user.email_verified |
| Rollen | role.created, role.updated, role.deleted, role.assigned, role.unassigned |
| Anwendungen | application.created, application.updated, application.deleted |
| Organisationen | organization.created, member.added, member.removed, invitation.sent |
| MFA | mfa.enabled, mfa.disabled, mfa.challenge_completed |
| Sitzungen | session.created, session.revoked |
| Webhooks | webhook.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_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6Kopiere 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:
| Header | Beschreibung |
|---|---|
X-Webhook-Signature | HMAC-SHA256-Signatur des Anfrage-Body mit dem Webhook-Geheimnis |
X-Webhook-Timestamp | Unix-Zeitstempel, wann die Übermittlung gesendet wurde (für Replay-Schutz) |
Verifizierungsschritte auf deinem Server:
- Den
X-Webhook-Timestamp-Header lesen - Den Zeitstempel auf einen akzeptablen Rahmen prüfen (z. B. 5 Minuten), um Replay-Angriffe zu verhindern
HMAC-SHA256(timestamp + "." + requestBody, webhookSecret)berechnen- 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:
- Erstelle eine temporäre URL mit deinem Test-Werkzeug
- Setze diese URL als Webhook-Endpunkt in der Konsole
- Löse Ereignisse aus (z. B. einen Test-Benutzer erstellen)
- Untersuche den empfangenen Payload im Test-Werkzeug
- 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.
| Spalte | Beschreibung |
|---|---|
| Ereignis | Der Ereignistyp (z. B. user.created) |
| Status | Von deinem Endpunkt zurückgegebener HTTP-Statuscode |
| Zeitstempel | Wann die Übermittlung gesendet wurde |
| Dauer | Roundtrip-Zeit in Millisekunden |
| Versuche | Anzahl der Übermittlungsversuche (1 bei Erfolg, 2-3 bei Wiederholungen) |
Übermittlungsstatus
| Statuscode | Bedeutung |
|---|---|
| 2xx (200, 201, 204) | Erfolg — dein Endpunkt hat die Übermittlung bestätigt |
| 4xx | Client-Fehler — dein Endpunkt hat den Payload abgelehnt (wird nicht wiederholt) |
| 5xx | Server-Fehler — dein Endpunkt hatte einen temporären Fehler (wird wiederholt) |
| Timeout | Dein Endpunkt hat nicht innerhalb von 10 Sekunden geantwortet |
| Netzwerkfehler | DNS-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:
| Versuch | Verzögerung nach Fehler |
|---|---|
| 1. Wiederholung | 30 Sekunden |
| 2. Wiederholung | 2 Minuten |
| 3. Wiederholung | 10 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:
- Öffne die Webhook-Detailseite
- Finde die fehlgeschlagene Übermittlung im Protokoll
- 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:
- Aktualisiere deinen Endpunkt-Code, um Signaturen von beiden alten oder neuen Geheimnissen zu akzeptieren
- Rotiere das Geheimnis in der Konsole
- 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:
| Kategorie | Ereignisse | Beschreibung |
|---|---|---|
| Authentifizierung | 8 Ereignisse | Anmeldung, Abmeldung, Registrierung, Passwortänderungen, MFA-Ereignisse |
| Benutzer | 6 Ereignisse | Benutzer CRUD, E-Mail-Verifizierung, Metadaten-Updates |
| Rollen | 5 Ereignisse | Rollen CRUD, Rollen-Zuweisung/-Entfernung |
| Anwendungen | 4 Ereignisse | Anwendungen CRUD, Geheimnis-Rotation |
| Organisationen | 6 Ereignisse | Org CRUD, Mitgliederverwaltung, Einladungen |
| Sitzungen | 3 Ereignisse | Sitzungserstellung, -aktualisierung, -widerruf |
| Token | 3 Ereignisse | Token-Ausstellung, -Aktualisierung, -Widerruf |
| FGA | 4 Ereignisse | Modellaktivierung, Tuple-Änderungen |
| Webhooks | 2 Ereignisse | Webhook-Erstellung, Test-Ereignisse |
| SCIM | 4 Ereignisse | SCIM-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
- Webhook-Integration — Entwicklerleitfaden — Einen Webhook-Consumer mit Signaturverifizierung erstellen
- Actions-Engine — Alternative für In-Flow-Logik (läuft während der Auth, nicht danach)
- Prüfprotokolle — Alle Authentifizierungsereignisse mit vollständigen Prüfpfaden anzeigen