Docs/Api Reference/Authentication

Authentifizierung

Unseenr nutzt verschiedene Authentifizierungsmethoden für verschiedene Kontexte.

Dashboard-Authentifizierung

GitHub OAuth

Die primäre Authentifizierungsmethode. Nutzer melden sich mit ihrem GitHub-Account an. Unseenr nutzt die better-auth Bibliothek für Session-Management.

Email / Passwort

Als Fallback verfügbar. Passwort-Anforderungen:

  • Mindestens 12 Zeichen
  • Serverseitig mit Zod validiert

Zwei-Faktor-Authentifizierung (2FA)

TOTP-basierte Zwei-Faktor-Authentifizierung ist für alle Accounts verfügbar. Wenn aktiviert:

  • Nutzer müssen beim Login einen 6-stelligen Code aus ihrer Authenticator-App eingeben
  • Backup-Codes werden zur Wiederherstellung bereitgestellt
  • 2FA kann in den Account-Einstellungen aktiviert/deaktiviert werden

Sessions

  • Sessions nutzen sichere Tokens mit Ablaufdatum
  • IP-Adresse und User-Agent werden zur Sicherheit geloggt
  • Sessions können in den Account-Einstellungen verwaltet (angesehen und widerrufen) werden

SDK / Ingest-Authentifizierung

SDK-Anfragen an den Ingest-Endpoint nutzen DSN-basierte Authentifizierung. Die DSN enthält einen Public Key, der das Projekt identifiziert:

https://<PUBLIC_KEY>@app.unseenr.io/<PROJECT_ID>

Der Public Key wird gesendet über:

  • x-unseenr-auth Header
  • x-sentry-auth Header (Sentry-Kompatibilität)
  • sentry_key Query-Parameter

Public Keys können sicher in clientseitigem Code eingebunden werden. Sie erlauben nur das Senden von Events an ein bestimmtes Projekt, nicht das Lesen von Daten.

Client Keys

Jedes Projekt hat einen oder mehrere Client Keys, jeder mit:

  • Einem einzigartigen Public Key
  • Einer einzigartigen DSN
  • Einem optionalen Umgebungsnamen
  • Aktiv/Inaktiv-Status

Inaktive Keys werden auf der Ingest-Ebene abgelehnt. Key-Rotation (neu erstellen + alten widerrufen) wird unterstützt.

Interne Worker API

Der Worker kommuniziert mit der Haupt-App über eine interne API, die durch ein Shared Secret (WORKER_API_SECRET) gesichert ist. Dies wird von den Uptime-API-Workern in entfernten Regionen (HEL1, ASH) genutzt, die keinen direkten Datenbankzugriff haben.

Security-Header

Alle authentifizierten Seiten enthalten:

Header Wert
X-Content-Type-Options nosniff
X-Frame-Options DENY
X-XSS-Protection 1; mode=block
Referrer-Policy strict-origin-when-cross-origin
Strict-Transport-Security max-age=63072000; includeSubDomains; preload
Content-Security-Policy Restriktive Policy (keine externen Scripts)
Permissions-Policy Kamera, Mikrofon, Geolocation deaktiviert
Auch verfügbar auf:English