84 lines
2.1 KiB
Markdown
84 lines
2.1 KiB
Markdown
# 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`:
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
node -e "console.log(require('crypto').randomBytes(16).toString('hex'))"
|
|
```
|
|
|
|
### Schritt 2: Server konfigurieren
|
|
|
|
In `server/.env`:
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
# 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
|