Software libero · AGPL-3.0 · riuso per la PA Codice sorgente

Enterprise edition

La Enterprise edition è pensata per le amministrazioni che hanno adottato Claude Team: un server nella rete interna, l'estensione installata e configurata dalle policy di Chrome, chiavi con custodi e un'osservabilità minima, documentata.

Architettura

Lo stack gira con Docker Compose su una VM della rete interna. Solo il reverse proxy è esposto; Rizzo-PII non ha accesso a Internet.

Servizi della Enterprise edition
ServizioRuolo
CaddyTLS con il certificato dell'ente, unico punto esposto; distribuisce anche il pacchetto dell'estensione
API Pseudomania (FastAPI)Pseudonimizzazione di testi e file, dizionario cifrato, registro minimo
Rizzo-PIIRiconoscimento dei dati personali, senza rete esterna
PostgreSQLDatabase applicativo: voci cifrate, registro minimo, registri tecnici
PostgreSQL (key store)Database separato delle copie di custodia, con volume, rete e backup propri
OpenBaoSolo la chiave HMAC che assegna lo stesso segnaposto allo stesso valore, e i segreti
Langfuse (facoltativo)Osservabilità; con ClickHouse, Valkey e SeaweedFS, oppure un Langfuse già presente nell'ente

Requisiti

Installazione

  1. Prepara la VM, DNS e certificati; scarica il codice e costruisci le immagini (anche offline).
  2. Genera la coppia di custodia offline con tools/custodi/ e distribuisci le quote ai custodi; pubblica la chiave pubblica nella configurazione.
  3. Configura i segreti in .env, avvia i servizi nell'ordine indicato e inizializza OpenBao.
  4. Configura Claude Team, l'identity provider e le policy di Chrome.
  5. Supera le prove della verifica del pilota prima di abilitare gli utenti.

Guide: installazione · configurazione · indice della documentazione.

Estensione gestita da policy

L'estensione è installata in modo forzato (ExtensionInstallForcelist o ExtensionSettings) e riceve la configurazione dalla policy: serverUrl, oidcIssuer, oidcClientId, failClosed (predefinito: sì), allowDisable (predefinito: no). Questi due valori si leggono solo dalla policy: il server non può indebolirli. L'utente non può rimuovere né disattivare l'estensione: la protezione è attiva in ogni conversazione e il pulsante nella barra degli strumenti è bloccato su acceso; se il server non risponde o la pagina di claude.ai non è riconosciuta, l'invio si blocca.

SSO e accesso condizionato

L'estensione ottiene un token dall'identity provider dell'ente (flusso authorization code con PKCE); il server lo verifica e ricava uno pseudonimo dell'utente con una chiave HMAC, senza salvare l'identità. Per claude.ai si usa l'SSO di Claude Team con accesso condizionato, e il proxy aziendale consente claude.ai solo dal Chrome gestito.

Chiavi e custodi

Le ragioni di ogni scelta: Cifratura e chiavi.

Osservabilità con Langfuse

Per ogni invio una traccia con il testo pseudonimizzato, i conteggi delle entità e la latenza, associata allo pseudonimo dell'utente: serve a misurare il rilevamento (falsi negativi e positivi segnalati, segnaposto alterati). Può essere un progetto dedicato su un Langfuse già usato dall'ente. Le tracce sono cancellate dopo 30 giorni durante il pilota e 7 giorni dopo, con un job di Pseudomania (la conservazione automatica di Langfuse self-hosted è a pagamento). Langfuse è facoltativo.

Conservazione

Ogni dato ha una durata motivata con fonti (Garante, EDPB, NIST, ACN): dizionari delle chat 30 giorni dall'ultimo uso, registro minimo 90 giorni e poi solo aggregati anonimi, backup al massimo 35 giorni, key store 14 giorni, registri degli amministratori 24 mesi. La tabella completa è nelle scelte di progetto; la cancellazione dai backup avviene distruggendo le chiavi (crypto-shredding).

Verifica prima del go-live

Prima di abilitare gli utenti: prove tecniche (docs/verifica-pilota.md), test di rilevamento su un corpus di documenti dell'ente (il repository include un corpus sintetico in collaudo/) e chiusura della checklist degli adempimenti.