Sicherheit & Authentifizierung

PgArachne verlässt sich vollständig auf das PostgreSQL-Berechtigungssystem. Es erfindet keine Access Control Lists (ACLs) neu. Alle Abfragen werden unter der spezifischen Datenbankrolle des authentifizierten Benutzers mit SET LOCAL ROLE ausgeführt.

1. Interaktives Login (JWT)

Benutzer authentifizieren sich über die Login-Funktion mit ihrem echten PostgreSQL-Benutzernamen und -Passwort. Bei Erfolg erhalten sie ein generisches JWT. Wenn dieses Token verwendet wird, wechselt PgArachne die aktive Rolle für die Dauer der Anfrage zu diesem Benutzer.

2. Service-Konten (API-Token)

Für automatisierte Systeme oder Skripte können Sie langlebige API-Schlüssel verwenden.

  • Token werden in der Tabelle pgarachne.api_tokens gespeichert.
  • Jedes Token ist einem bestimmten Datenbankbenutzer/-rolle zugeordnet.
  • Senden Sie das Token über den Header Authorization: Bearer <token>.

Das Erstellen von API‑Tokens erfordert pgarachne_admin. Verwende pgarachne.add_api_token(...) mit einer Rolle, die Mitglied von pgarachne_admin ist.

Kritische Konfiguration: Proxy-Privilegien

Da sich PgArachne als der in DB_USER definierte Benutzer (z. B. pgarachne) verbindet und die Identität zu anderen Benutzern wechselt, muss der Proxy-Benutzer Mitglied dieser Zielrollen sein.

Führen Sie dieses SQL für jeden Benutzer/jede Rolle aus, die sich anmelden muss:

-- Erlaube 'pgarachne' zu 'demo_user' zu wechseln
GRANT demo_user TO pgarachne;