[TUTORIAL] Set-up Appliance RAO per Erogazione SPID

Ciao @pif ,
ho provato a seguire le tue istruzioni, ma dopo il comando di docker run, sembra che non venga avviato il servizio sulla porta 8000.

C’è forse qualche altro passaggio da eseguire dopo il run?

@gianluca-difranco non riesco ad attivare il rao-pubblico.
Posso in qualche modo contattarti per avere qualche informazione aggiuntiva?

Ciao a tutti,
ci possono essere delle incongruenze con la mia guida in quanto è stata scritta a settembre, ovvero con:

Se qualcuno è riuscito dopo a installare il tutto, l’invito è quello di aggiornare la guida, sarà mia cura aggiornare anche il post! :slight_smile:

Buongiorno a tutti,
@onofabio ti invito (ed invito anche coloro i quali avessero difficoltà) ad aprire una issue sul repos. del rao pubblico esponendo il problema riscontrato; in questo modo mi sarà più facile darti una risposta.

Buona giornata,
Gianluca

Grazie @gianluca-difranco , ho inserita la segnalazione su github.
Ora devo capire se utilizzare la versione 1.0.14 (per cui @pif aveva preparato la guida), che sembra funzionare o attendere indicazioni riguardo i problemi che ho riscontrato.
Non vorrei che attivando il sistema con una versione “vecchia” renda poi incompatibile l’aggiornamento.

Sono riuscito ad avviare il tutto, mancavano alcuni permessi di esecuzione sui file del docker.

Ora proseguo con i miei test.

Grazie a tutti

Scusate, ma nella generazione della richiesta CSR dove inserisco il codice IPA?
Nel PDF è indicato che va obbligatoriamente nella richiesta CSR.
Tuttavia, openssl offre solo 6 campi:

C - Country Name (2 letter code) :
ST - State or Province Name (full name) :
L - Locality Name (eg, city) [Default City]:
O - Organization Name (eg, company) [Default Company Ltd]:
UN - Organizational Unit Name (eg, section) :
CN - Common Name (eg, your name or your server’s hostname) :

Va in CN al posto dell’indirizzo web?

Grazie per la guida.
Installato il tutto su macchina fisica ubuntu 20.04 LTS
Dopo un primo tentativo con docker-compose presente su GH che mi generava errori di permessi, ho scelto la strada manuale partendo dalle versioni indicate da @pif
Nessun problema. Segnalo solo, per chi fosse meno abituato, le operazioni svolte rispetto all’installazione standard di Ubuntu 20.04 LTS:

  1. Installare git (sudo apt-get install git)
  2. installare docker (qui una guida sintetica: Install Docker Engine on Ubuntu | Docker Documentation)
  3. Installare compose (sudo apt install docker-compose)
  4. Installare i moduli mancanti di python:
    sudo apt install python3.8-venv
    sudo apt install python3-pip

Per il resto è perfetta la guida.

Domanda: dovendo gestire una unione di 2 comuni (per ora ho fatto uno dei due, e vorrei far girare sulla stessa macchina fisica il docker dell’altro comune), è sufficiente ‘duplicare’ i 2 repository, rinominandoli opportunamente e cambiando le porte? Ovviamente cambiando anche i nomi delle immagini e dei volumi.

Grazie
e Buon Lavoro!

1 Mi Piace

Grazie per la guida, son riuscito dopo un pò di tentativi a far partire il container e adesso mi appare la pagina di configurazione RAO il problema adesso è inserire i dati corretti relativi all’aministratore del servizio e sopratutto i parametri della mail e relativo smtp, non essendoci nessuna guida di riferimento ho effettuato diverse prove con i dati della mail gmail, mail del comune e mail tiscali ma tutti mi danno un errore di smtp non corretto.
ho ricevuto dal sistema il pin provvisorio tramite il comando curl…
grazie a tutti per la collaborazione

1 Mi Piace

Buongiorno @cardec77 , per quanto concerne SMTP non sono presenti guide poiché i vari parametri cambiano in base al provider (@gmail, @virgilio…).

Ti indico qui, a titolo di esempio, la guida per Gmail, particolare accortezza deve essere posta in caso di 2FA, poiché servirebbe la password per app: Check Gmail through other email platforms - Gmail Help

Saluti

Sono riuscito a far funzionare correttamente smtp con il provider virgilio, però quando vado a fare la modifica del pin e inserire i certificati di firma del comune ottengo un errore:
errore 500 : errore durante il cambio pin

i file che allego come crt e .key sono il crt restituito da AGID e la chiave inviata come richiesta insieme al csr

come faccio a risolvere questo problema?
ti ringrazio per la disponibilità

Buongiorno,
l’errore di per se non mi fa ben capire, prova a postare i log.

nel file debug.log c’è questo:
[v. 1.0.0] [09/May/22 15:32:19] INFO [init] [api.views:42] SO: MIO
CODFISCALE Issuer: B354 Operazione eseguita correttamente
[v. 1.0.0] [09/May/22 15:40:24] ERROR [init] [api.views:45] Exception: ‘NoneType’ object has no attribute ‘upper’
[v. 1.0.0] [09/May/22 15:41:30] ERROR [init] [api.views:45] Exception: UNIQUE constraint failed: api_user.username
[v. 1.0.0] [09/May/22 16:59:20] ERROR [init] [api.views:45] Exception: ‘NoneType’ object has no attribute ‘upper’

[quote=“cardec77, post:34, topic:25895”]
api.views:45] Exception: ‘NoneType’ object has no attribute ‘upper’

Buongiorno.
Seguiti alla lettera i passi operativi su una Ubuntu 20.4 LTS e sono arrivato a questo inciampo:

docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting cointainer process caused: exec: "/entrypoint": permission denied: unknown

Qualche suggerimento?
Grazie e buon lavoro

Ciao @Segrate,
in questo messaggio @onofabio parlava di permessi, io non ho avuto problemi di quel tipo ai tempi. Eventuali bug che vanno corretti affinché il software funzioni andrebbero segnalati tramite Github in modo che possano essere corretti a monte.

Ottimo, grazie, spero che @onofabio possa condividere la sua soluzione, saluti

Salve a tutti,
ripropongo la questione posta qualche tempo fa da @macinteo sulla generazione del file CSR per richiedere il Sigillo elettronico ad AgID, in quanto non ho ancora trovato risposta.

Il modulo di richiesta indica come obbligatorio il Codice IPA, però non specifica in quale campo del SubjectDN tale codice vada inserito.
Oltretutto il modulo sopra citato specifica che nel Codice IPA bisogna sostituire il carattere “_” (underscore) con un “-” (trattino). Esempio: il codice IPA “C_d704” diventa “C-d704”.
Invece, le specifiche tecniche per i certificati dei Service Provider indicano che il codice IPA va inserito nel campo organizationIdentifier, ma con una codifica differente (ad esempio il codice IPA C_d704 lì diventa PA:IT-c_d704).
Quindi, in definitiva, sapete dirmi dove inserire il Codice IPA e qual è la codifica esatta?

Inoltre, il paragrafo 3.12 delle Linee Guida (e il successivo Avviso nr. 30 che ne corregge il contenuto) specifica che il Sigillo elettronico per il RAO pubblico deve contenere gli OID 1.3.76.16.4.2.4 e 1.3.76.16.4.12, ma non mi è chiaro se anche il file CSR debba contenerli oppure no (e in caso come inserirli).

Qualcuno sa darmi delle indicazioni?
Grazie

Forse sarebbe meglio spiegare che le 2 app python è possibile installarle, tramite git e poi almeno un pip env, direttamente su una macchina oppure usare due container docker. Io dato che molti degli utenti hanno una esperienza limitata riguardo al deploy di app punterei più sull’uso di docker.
In questo caso non c’è la necessita di creare le immagini delle 2 app, ma con pochi comandi potrete installare tutto.

Assicuratevi di avere installato docker, poi iniziate a creare i volumi:

docker volume create "signdata"
docker volume create "raodata"

poi la rete con cui i due container potranno comunicare tra loro:
docker network create --subnet=172.20.0.0/16 rao-net

Per l’app nel container rao-pubblico è necessario creare un file “rao.env” per alcune variabili con il seguente contenuto:

SIGN_URL=http://sign.comune.xxx.it:8003/v2/
BASE_URL=http://rao.comune.xxx.it:8000/
SECRET_KEY="pass1"
DATABASE_NAME=/data/raodb.sqlite3
MAIL_LOG_LEVEL=ERROR
PORTAL_LOG_LEVEL=INFO
AGENCY_LOG_LEVEL=INFO
SECRET_KEY_ENC="pass2"
RAO_NAME="Comune di xxx"

il percorso dove avete salvato i files lo dovrete usare nel comando RUN per la creazione del relativo container:

docker run -d --name "sieltesign_py3.10" --mount type=volume,source="signdata",target="/data" --net rao-net --ip 172.20.0.2 -h sign.comune.xxx.it -p "8003:8003" "salvatoresaba/sieltesign:py3.10"
docker run -d --name "rao-app_py3.10" --env-file "./compose/local/rao/rao.env" --mount type=volume,source="raodata",target="/data" --net rao-net --ip 172.20.0.3 -h rao.comune.xxxx.it -p "8000:8000" "salvatoresaba/rao-app:py3.10"  "/start"

Quindi ricordate di personalizzare il nome dell’ente e il percorso del file rao.env

Per attivare un Security Officer occorre accedere al container del sieltesign tramite il seguente comando:
docker exec -it sieltesign_py3.10 /bin/bash
ed usare il comando:
curl -X POST 'http://127.0.0.1:8003/v2/api/init' --form 'username=<CF_SEC_OFFICER>' --form 'entity=<IPA_CODE_ENTE>'
con il codice fiscale della persona che avrà la funzione di security officer e il codice ipa del comune o dell’ente.
Il risultato sarà un codice pin temporaneo da utilizzare per l’attivazione dell’amministratore.

Se tutto è andato a buon fine potrete accedere agli endpoint localmente e dopo aver impostato i nomi di dominio sull’ip della macchina che state usando saranno utilizzabili dagli operatori.

1 Mi Piace

Salve @Salvatore_Saba ,

ho seguito (praticamente alla lettera) le tue istruzioni, in una virtual machine su cui sto eseguendo dei test.
Ho creato i volumi, la rete e pure i container senza problemi.
Sto usando quindi le immagini “salvatoresaba/sieltesign” e “salvatoresaba/rao-app” prese dai repository di docker.

Al momento di testare l’applicazione, puntando il browser a http://localhost:8003 ottengo questo errore: (praticamente un 404 - page not found sul path /v2/)

Page not found (404)
Request Method: 	GET
Request URL: 	http://localhost:8003/

Using the URLconf defined in sieltesign.urls, Django tried these URL patterns, in this order:
    ^v2/api/
The empty path didn't match any of these.

You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.

Il mio file rao.env e’ questo:

SIGN_URL=http://sign.test.it:8003/v2/
BASE_URL=http://rao.test.it:8000/
SECRET_KEY="mykey"
DATABASE_NAME="/data/rao-pubblico.sqlite3"
MAIL_LOG_LEVEL=ERROR
PORTAL_LOG_LEVEL=INFO
AGENCY_LOG_LEVEL=INFO
SECRET_KEY_ENC="mykeyenc"
RAO_NAME="Ente di test"

Mi sapresti aiutare?