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;