Oggi vi parleremo dello SPID e della nostra esperienza di integrazione in due differenti occasioni.

Cos’è SPID

Prima di tutto lo SPID (Sistema Pubblico Identità Digitale) è un sistema che permette di accedere ai servizi delle Pubbliche Amministrazioni italiane sul web. Consiste nella creazione di una propria identità digitale certificata e verificata tramite un Identity Provider (Aruba, Poste, Infocert sono i più famosi).

Con questa identità poi si può effettuare il login ai servizi delle diverse PA per usufruire dei servizi offerti.

Service Provider

In due diverse occasioni abbiamo lavorato per implementare l’integrazione dello SPID dal punto di vista del Service Provider, ovvero l’entità che eroga il servizio al cittadino per conto della Pubblica Amministrazione, e permettere così l’accesso a tali servizi con lo SPID.


Due casi, due tecnologie, stessi problemi…

Diversamente da quanto accade solitamente in Italia c’è da dire che di documentazione sullo SPID ce n’è abbastanza, vi sono tool che supportano la fase di test e verifica, ma purtroppo la qualità e cura dei dettagli a volte lascia un po’ desiderare…

1 – SPID Java

Un primo progetto su cui abbiamo lavorato per integrare lo SPID era sviluppato con tecnologia Java.
Purtroppo la libreria “ufficiale” di SPID per Java ha delle grosse lacune e mancanze, quindi abbiamo dovuto riscriverla completamente.

Abbiamo dovuto lavorare “sul ferro” e implementare tutti i controlli che il protocollo SPID richiede, sia in termini di obbligatorietà dei campi richiesti nella comunicazione tra Identity Provider e Service Provider, nonché verifiche più delicate come quelle dei certificati per attestare l’identità e la legittimità dell’Identity Provider.

2 – SPID PHP

Anche lato PHP AgId mette a disposizione delle librerie, decisamente più aggiornate e manutenute che in altri linguaggi. Per questo altro progetto abbiamo utilizzato una libreria ufficiale di AgId: una personalizzazione di SimpleSAMLphp, che da un lato ci ha permesso di velocizzare la fase di setup, ma allo stesso tempo ci ha impedito di essere agili sull’aspetto del DEBUG delle problematiche evidenziate.

SPID tool

AgId mette a disposizione alcuni tool per il debug e il test decisamente utili ed al passo coi tempi. Stiamo parlando di immagini docker su cui far girare un Identity Provider fittizio da utilizzare per chiudere il giro dell’integrazione di un Service Provider e poter testare ogni aspetto del lavoro svolto.

Inoltre, hanno reso disponibile una seconda immagine docker con un tool web che permette di eseguire facilmente tutti i test previsti dal processo di approvazione tecnica da parte di AgId, così che si possa verificare tutto il lavoro svolto prima di mandarlo in approvazione.

Purtroppo abbiamo riscontrato qualche lacuna su questi tool, alcune anche gravi come l’errata verifica dei certificati scambiati tra Identity Provider e Service Provider, che di fatto impedisce il testing nel caso in cui vi siano più Service Provider con certificati diversi. Inoltre l’Identity Provider di test ha un problema nella visualizzazione degli errori, in pratica va in errore cercando di mostrare all’utente la causa di errore riscontrato.

AgId

Infine parlando di AgId, l’agenzia che gestisce la digitalizzazione per l’Italia dobbiamo dire che nonostante queste lacune sui tool, si è rivelata decisamente disponibile e collaborativa nella risoluzione delle problematiche che abbiamo riscontrato.

Conclusione

Ci piace vedere che l’Italia investa nel portare avanti progetti di digitalizzazione per agevolare l’accesso ai servizi delle PA molto spesso complicati, ci piace vedere che le tecnologie utilizzate e proposte siano fresche e al passo coi tempi, ma ci piacerebbe vederli crescere con un pizzico in più di cura nei dettagli.

Siete anche voi alle prese con lo SPID e avete bisogno di supporto nell’integrazione con la vostra piattaforma web (o mobile)? Contattateci attraverso il nostro sito tangodev.it!