Seguridad y Autenticación
PgArachne se basa completamente en el sistema de permisos de PostgreSQL. No reinventa las Listas
de Control de Acceso (ACLs). Todas las consultas se ejecutan bajo el rol de base de datos específico del
usuario autenticado usando SET LOCAL ROLE.
1. Inicio de Sesión Interactivo (JWT)
Los usuarios se autentican usando su nombre de usuario y contraseña reales de PostgreSQL a través de la función de inicio de sesión. Si tiene éxito, reciben un JWT genérico. Cuando se usa este token, PgArachne cambia el rol activo a ese usuario durante la duración de la petición.
2. Cuentas de Servicio (Tokens de API)
Para sistemas automatizados o scripts, puedes usar claves API de larga duración.
- Los tokens se almacenan en la tabla
pgarachne.api_tokens. - Cada token se asigna a un usuario/rol de base de datos específico.
- Envía el token a través del encabezado
Authorization: Bearer <token>.
Crear tokens API requiere pgarachne_admin. Usa pgarachne.add_api_token(...) con un rol que sea miembro de pgarachne_admin.
Configuración Crítica: Privilegios del Proxy
Dado que PgArachne se conecta como el usuario definido en DB_USER (ej.
pgarachne) y cambia la identidad a otros usuarios, el usuario proxy debe ser
miembro de esos roles objetivo.
Ejecuta este SQL para cada usuario/rol que necesite iniciar sesión:
-- Permitir a 'pgarachne' cambiar a 'demo_user'
GRANT demo_user TO pgarachne;