Files
Emailsorter/docs/deployment/WEBHOOK_AUTHORIZATION.md

2.1 KiB

Webhook Authorization Header - Anleitung

Der Webhook unterstützt zwei Authentifizierungsmethoden:

  1. Signature-Verification (Standard, von Gitea)
  2. Authorization Header (Optional, zusätzliche Sicherheit)

Option 1: Nur Signature (Standard)

Das ist die Standard-Methode, die Gitea automatisch verwendet:

Konfiguration

In server/.env:

GITEA_WEBHOOK_SECRET=dein_secret_hier

In Gitea

  • Secret: Trage das gleiche Secret ein
  • Authorization Header: Nicht nötig

Gitea sendet automatisch den X-Gitea-Signature Header.

Option 2: Authorization Header (Zusätzliche Sicherheit)

Falls du zusätzliche Sicherheit möchtest oder den Webhook manuell aufrufst:

Schritt 1: Token generieren

node -e "console.log(require('crypto').randomBytes(16).toString('hex'))"

Schritt 2: Server konfigurieren

In server/.env:

GITEA_WEBHOOK_SECRET=dein_secret_hier
GITEA_WEBHOOK_AUTH_TOKEN=dein_auth_token_hier

Schritt 3: In Gitea konfigurieren

Gitea unterstützt keine Authorization Header direkt, aber du kannst:

Option A: Nur Signature verwenden (empfohlen)

  • Lass GITEA_WEBHOOK_AUTH_TOKEN leer
  • Nur GITEA_WEBHOOK_SECRET verwenden

Option B: Manuelle Webhook-Aufrufe

Wenn du den Webhook manuell aufrufst (z.B. via curl), verwende:

curl -X POST https://emailsorter.webklar.com/api/webhook/gitea \
  -H "Content-Type: application/json" \
  -H "X-Gitea-Signature: sha256=..." \
  -H "Authorization: Bearer dein_auth_token_hier" \
  -d '{"ref":"refs/heads/main",...}'

Option 3: Beide Methoden kombinieren

Für maximale Sicherheit kannst du beide verwenden:

# In server/.env
GITEA_WEBHOOK_SECRET=secret_fuer_signature
GITEA_WEBHOOK_AUTH_TOKEN=token_fuer_auth_header

Verhalten:

  • Wenn beide gesetzt sind, müssen beide passen
  • Wenn nur eine gesetzt ist, reicht diese

Empfehlung

Für Gitea-Webhooks: Verwende nur GITEA_WEBHOOK_SECRET (Signature)

Für manuelle Aufrufe: Verwende GITEA_WEBHOOK_AUTH_TOKEN (Authorization Header)

Für maximale Sicherheit: Verwende beide