Multi-tenancy, ruoli, sessioni e tracciabilità

Sicurezza e isolamento dei dati

3 min di letturaAggiornato Agosto 2026

I dati di uno studio professionale sono dati di terzi. L'impianto di sicurezza di Xedul parte da questo presupposto: l'isolamento non è una funzione dell'interfaccia, è una proprietà del database.

Isolamento per organizzazione

Xedul è multi-tenant per costruzione. Ogni riga delle tabelle di lavoro porta il riferimento all'organizzazione di appartenenza, e le politiche di sicurezza a livello di riga applicano il confine direttamente in PostgreSQL.

La differenza rispetto a un filtro applicato nell'applicazione è sostanziale: se il filtro vive nel codice, un errore in una query lo aggira. Se vive nel database, la query semplicemente non restituisce righe di altre organizzazioni.

Autenticazione

L'autenticazione è gestita da Supabase Auth, con sessioni basate su token e rinnovo automatico. L'accesso avviene con email e password; l'invito di un nuovo utente genera un flusso di impostazione password che non richiede la trasmissione di credenziali.

Autorizzazione

Sopra l'autenticazione agisce il controllo accessi basato sui ruoli, descritto in Utenti e permessi:

  • Amministratore — governo dell'organizzazione e accesso completo al lavoro.
  • Utente — lavoro quotidiano, senza il governo delle impostazioni.
  • Utente esterno — visibilità ristretta alle sole entità collegate.

Sessioni delle integrazioni email

Le integrazioni Gmail e Outlook mantengono la propria sessione Xedul, separata dai cookie dell'applicazione web.

Nell'estensione Chrome, token di accesso e di rinnovo sono conservati nell'archivio locale dell'estensione; lo script che gira dentro la pagina di Gmail non li legge e non li conserva, perché autenticazione e chiamate API passano dal service worker.

Nel componente aggiuntivo Workspace, i token stanno nelle proprietà utente dello script. L'autorizzazione usata per leggere gli allegati da Gmail è di sola competenza del server: non viene mai restituita al browser, e viene rimossa dalla bozza una volta completata l'importazione.

Questa separazione è deliberata. Un token dell'integrazione compromesso non equivale a una sessione applicativa, e viceversa.

Archiviazione dei documenti

I file caricati risiedono nell'archivio gestito, con controlli sui tipi ammessi. I file di tipo non consentito vengono rifiutati in fase di caricamento, incluse le importazioni automatiche dagli allegati email.

Tracciabilità

Le azioni sulle entità di lavoro lasciano traccia. Serve a ricostruire cosa è successo su una pratica — utile nei passaggi di consegna — e a rispondere al cliente che chiede conto di quando una certa attività è stata svolta.

Perché la tracciabilità abbia valore, ogni persona deve avere il proprio utente: un account condiviso rende ogni traccia inutilizzabile.

Protezione dell'ambiente di produzione

Il progetto adotta misure specifiche per l'ambiente di produzione, fra cui la validazione delle variabili d'ambiente prima della compilazione, il backup automatico prima delle modifiche allo schema e una strategia di rilascio che valida la distribuzione prima di applicare i cambiamenti al database.

Responsabilità dello studio

Alcune cose restano in capo a chi usa il prodotto:

  • Un utente per persona, mai account condivisi.
  • Revisione periodica degli accessi, in particolare degli utenti esterni non più attivi.
  • Ruolo minimo sufficiente all'ingresso di una nuova persona.
  • Pochi amministratori: il ruolo serve al governo, non al lavoro quotidiano.
  • Verifica degli accessi esterni con un account di prova prima di attivarli.
Sicurezza e isolamento dei dati — Xedul