Sicurezza e Autenticazione

PgArachne si affida interamente al sistema di permessi di PostgreSQL. Non reinventa le Liste di Controllo degli Accessi (ACL). Tutte le query vengono eseguite sotto il ruolo database specifico dell’utente autenticato utilizzando SET LOCAL ROLE.

1. Login Interattivo (JWT)

Gli utenti si autenticano utilizzando il loro reale nome utente e password PostgreSQL tramite la funzione di login. In caso di successo, ricevono un JWT generico. Quando questo token viene utilizzato, PgArachne cambia il ruolo attivo in quell’utente per la durata della richiesta.

2. Account di Servizio (Token API)

Per sistemi automatizzati o script, puoi utilizzare chiavi API a lunga durata.

  • I token sono memorizzati nella tabella pgarachne.api_tokens.
  • Ogni token è mappato a un utente/ruolo database specifico.
  • Invia il token tramite l’header Authorization: Bearer <token>.

La creazione di token API richiede pgarachne_admin. Usa pgarachne.add_api_token(...) con un ruolo membro di pgarachne_admin.

Configurazione Critica: Privilegi Proxy

Poiché PgArachne si connette come l’utente definito in DB_USER (es. pgarachne) e cambia identità in altri utenti, l’utente proxy deve essere membro di quei ruoli di destinazione.

Esegui questo SQL per ogni utente/ruolo che deve accedere:

-- Consenti a 'pgarachne' di passare a 'demo_user'
GRANT demo_user TO pgarachne;