Il seguente progetto mette a disposizione dei R.A.O. pubblici una piattaforma contenente le funzionalità basilari per il processo di identificazione SPID.
Per ottenere un ambiente funzionante occorre inviare una richiesta ad AgID via PEC come mostrato nelle linee guida.
Viene fornito il file docker-compose.yaml per un avvio rapido del progetto rao-pubblico e del sign-server. Per un corretto funzionamento, procedere come segue:
- effettuare il git clone di questo repos.;
- effettuare il git clone del repos. sign-server;
- rinominare la cartella in cui risiede il sign-server in signserver (o modificare il context del signserver all'interno del docker-compose.yaml);
- modificare il file compose/local/rao/rao.env con le variabili d'ambiente che si desidera configurare;
- avviare il comando
docker-compose up
all'interno della cartella in cui si trova il repos. di rao-pubblico.
All'interno del capitolo Configurazione (inizializzazione dei dati) viene spiegato come configurare i due servizi.
È possibile installare ed eseguire l'applicazione RAO in un container Docker, allo scopo è stato preparato un Dockerfile
basato sull'immagine python:3.6.
Il Dockerfile
genera un'immagine compatibile con gli orchestratori OpenShift e Kubernetes.
Per un corretto funzionamento del sistema sarà necessario configurare il Server di Firma rao-pubblico-signer, che avrà il compito di autorizzare tramite pin le operazioni del Security Officer (Amministratore del R.A.O.) e degli operatori del R.A.O.
È possibile accedere al repository di rao-pubblico-signer tramite il link di cui sotto:
https://github.com/Sielte/rao-pubblico-signer.git
All'interno è presente un readme che spiega come configurare correttamente il SignServer.
Processo di building dell'immagine Docker:
Dalla directory principale del progetto lanciare il comando:
docker build --no-cache -f "./compose/local/django/Dockerfile" -t "rao-app:<tag>" .
Sostituire a <tag>
un'etichetta per identificativa dell'immagine Docker (esempio latest
).
L'immagine copia il contenuto della directory ./rao
, lo script di avvio ./compose/local/django/start
e quello di entrypoint ./compose/production/django/entrypoint
nel container.
L'immagine espone la porta 8000/TCP
e il volume /data
.
Per la configurazione sono utilizzate le seguenti variabili di ambiente:
Variablie | Descrizione |
---|---|
SIGN_URL |
URL delle API del server di firma (esempio: http://signserver.sielte.it/v2/). |
BASE_URL |
URL di base su cui risponderà il servizio RAO (esempio: https://test-rao.sielte.it/). |
SECRET_KEY |
Una stringa alfanumerica da utilizzare per le funzionalità di sicurezza interne di Django. Se non impostata verrà utilizzato un valore generato casualmente. |
DATABASE_NAME |
Percorso completo del file del database SQLite che verrà usato dall'applicazione (predefinito ./data/raodb.sqlite3 ) |
MAIL_LOG_LEVEL |
Livello di verbosità dei log che verranno inviati per e-mail (predefinito ERROR ) |
PORTAL_LOG_LEVEL |
Livello di verbosità dei log del portale (predefinito DEBUG ) |
AGENCY_LOG_LEVEL |
Livello di verbosità dei log dell'agency (predefinito DEBUG ) |
SECRET_KEY_ENC |
Una stringa alfanumerica da utilizzare per la crittografia delle password degli operatori. Se non impostata verrà utilizzato un valore generato casualmente. |
RAO_NAME |
Nome/Identificativo del R.A.O. (es. Catania) |
Nel caso di utilizzo dell'immagine con Docker si consiglia di creare un volume con il comando:
docker volume create "<nome_volume>" &> /dev/null || true
Esecuzione dell'immagine (sostituire opportunamente i valori dei dati all'interno del file rao.env tra parentesi angolari <...>
):
docker run -d \
--name "<nome_container>" \
--env-file "./compose/local/rao/rao.env" \
--mount type=volume,source="<nome_volume>",target="/data" \
-p "<porta>:8000" \
"rao-app:latest" "/start"
Al primo avvio del progetto, si verrà re-indirizzati su:
https://..../agency/setup
Attraverso questo link verrà visualizzato un form con i seguenti campi che dovrà compilare l'UNICO utente AMMINISTRATORE del sistema:
- codice fiscale dell'Amministratore (campo username)
- nome dell'Amministratore
- cognome dell'Amministratore
- e-mail dell'Amministratore
- conferma e-mail
- nome del comune
- codice identificativo IPA
- campo "Da"
- username posta in uscita (SMTP)
- password posta in uscita (SMTP)
- host posta in uscita (SMTP)
- porta posta in uscita (SMTP)
- crittografia posta in uscita (Nessuna/SSL/TLS)
Queste informazioni serviranno ad inizializzare un utente admin, a impostare il nome relativo all'agenzia/comune che utilizzerà il servizio e a configurare il server e-mail che provvederà ad inviare le varie e-mail precompilate dall'applicativo.
Una volta compilato il form, verrà inviata un'e-mail di conferma all'indirizzo e-mail dell'amministratore contenente il link di verifica; al click su di esso verrà richiesto di inserire la propria password. Teminata questa prima fase di setup viene avviata in automatico una procedura per il popolamento di alcuni dati, quali:
- comuni
- province
- nazioni
- ecc..
(Questa operazione potrebbe richiedere tempo)
Un ultimo passaggio necessario per l'attivazione del proprio account comporta l'inserimento dei seguenti dati:
- PIN di Firma temporaneo
- nuovo PIN di Firma formato da 6 caratteri numerici
- conferma PIN
- certificato
- chiave privata
Per ottenere il PIN di Firma temporaneo, leggere il capitolo Attivazione di un Security Officer del readme del signserver.
L'utente Amministratore sarà quindi attivo: potrà raggiungere la pagina di login ed effettuare l'accesso con le credenziali inserite durante il processo di attivazione.
L'Operatore ADMIN potrà:
- visualizzare l'elenco delle richieste di identificazione effettuate dagli operatori
- visualizzare l'elnco degli operatori
- aggiungere un nuovo operatore
- visualizzare la dashboard delle richieste di identificazione effettuate nel tempo
- aggiornare certificato/chiave pubblica e riconfigurare il server di Posta in Uscita
L'Operatore R.A.O potrà:
- visualizzare l'elenco delle richieste di identità da lui effettuate
- inserire una nuova richiesta di identificazione
L'utente ADMIN cliccando su "Aggiungi operatore" e compilando l'apposito form potrà inserire un nuovo Operatore R.A.O. (ultimato il form, sarà necessario inserire il proprio PIN di Firma per concludere l'operazione); verrà generato automaticamente un file PDF contenente il PIN temporaneo che l'operatore dovrà inserire in fase di attivazione del proprio account.
L'operatore inserito riceverà un link di verifica presso l'indirizzo di posta indicato dall'utente Amministratore durante la compilazione del form. Al click sul link il nuovo Operatore dovrà scegliere una password valida e modificare il PIN di Firma temporaneo (fornito dall'Amministratore) prima di poter effettuare l'accesso ed iniziare ad utilizzare l'applicativo per le Identificazioni SPID.
L'Operatore R.A.O cliccando su "Aggiungi richiesta" e compilando l'apposito form potrà inserire una nuova richiesta di identificazione. Ultimato il form, sarà necessario inserire il proprio PIN di Firma per concludere l'operazione. Una volta terminato, l'operatore R.A.O. dovrà stampare la prima metà della password del token dell'utente su cui è stato apposto il sigillo e consegnarla di persona. L'utente che ha richiesto l'identificazione riceverà il token su cui è stato apposto il sigillo e la seconda metà della password all'indirizzo e-mail fornito per l'identificazione.