Piattaforma abilitante
SPID
Sistema Pubblico di Identità Digitale
Lo SPID è una credenziale unica di accesso, con identità verificata, integrabile da siti pubblici e privati.
Community leader
Intro
SPID (Sistema Pubblico di Identità Digitale) è la soluzione che permette ai cittadini italiani di accedere a tutti i servizi online della Pubblica Amministrazione con un’unica Identità Digitale utilizzabile da computer, tablet e smartphone. Il cittadino può ottenere SPID tramite i Gestori di Identità (detti Identity Provider); una volta completata la procedura di autenticazione il cittadino accede ai Fornitori di Servizi (detti Service Provider).
Vantaggi per il cittadino:
- Un’unica credenziale per tutti i siti pubblici e privati, sicura e facile da ricordare
- Il processo di riconoscimento e rilascio si effettua una volta sola e vale per sempre
- SPID è gratuito
Vantaggi per il Service Provider:
- Certezza dell’identità dell’utente
- Nessuna necessità di gestire un processo di registrazione/riconoscimento, con risparmio dei relativi costi
- Attributi qualificati (data/luogo di nascita, sesso, e-mail, telefono ecc.)
- Altri attributi già popolati dall’utente (indirizzo di residenza ecc.)
L’integrazione di SPID è consentita sia per i siti della Pubblica Amministrazione (che ne beneficiano gratuitamente), sia per i siti e servizi online dei privati (che pagano il servizio). I vantaggi nella sua adozione sono quindi molteplici: le banche e le assicurazioni, per esempio, potrebbero riconoscere il cittadino che vuole creare un conto o stipulare una polizza semplicemente facendogli fare login tramite SPID.
Come diventare Service Provider
- Leggi la documentazione tecnica.
- Usa e contribuisci ai componenti open source che trovi in Developers Italia.
- Usa l’Identity Provider di test spid-saml-check per simulare il flusso di autenticazione e verificare che la tua implementazione sia corretta.
- Entra in contatto con gli altri sviluppatori in Slack.
- Segui la procedura di accreditamento descritta nel sito di AGID.
- Se stai riscontrando problemi con la procedura di accreditamente contatta l’HelpDesk AgID SPID.
SPID è basato sul protocollo SAML2, per configurarlo è possibile scegliere una tra le molteplici soluzioni disponibili:
- integrando direttamente nell’applicazione uno dei tanti SDK nativi presenti in Developers Italia;
- applicando al web server Apache un middleware come Shibboleth Service Provider;
- aggiungendo un componente esterno di Identity Access Management come ad esempio un Proxy.
È necessario inoltre integrare nel sito il bottone ufficiale “Entra con SPID”, che permette all’utente di selezionare il proprio Identity Provider. L’applicazione del Service Provider genera di conseguenza una AuthnRequest che viene poi inviata all’Identity Provider attraverso un HTTP Redirect o POST del browser.
Il Service Provider deve aggiornare periodicamente i metadati degli Identity Provider in caso di aggiunta, revoca, modifica o aggiornamento del certificato di uno di essi, e deve riportare tale modifica anche nel bottone “Entra con SPID”. I metadati degli Identity Provider sono disponibili presso lo SPID registry.
Come contribuire
La community di Developers Italia ha realizzato un’ampia gamma di componenti open source (SDK, esempi di codice, IAM Proxy, tools) pronti per l’uso. Chiunque può contribuire al miglioramento dei componenti esistenti o aiutare a svilupparne di nuovi. È importante tenere presente che le risorse messe a disposizione della community non sono da intendersi come normative ma solo come supporto, esempio e aiuto integrativo per gli sviluppatori.
Canali
Entra nel forum Dialoga su Slack (#spid) Registrati su Slack
Risorse
-
Regole Tecniche consolidate per SAML2
Le regole tecniche di SPID con applicati tutti gli avvisi e le correzioni ai refusi, consultabili comodamente su Docs Italia
-
SAML2 Metadata degli Identity Provider
SAML2 Metadata degli Identity Provider, che i Service Provider devono mantenere aggiornati
-
Modulistica, circolari e deliberazioni
Sito di AGID contenente la modulistica, i listini, le convenzioni e le deliberazioni che riguardano SPID
-
SDK per PHP (basata su SimpleSAMLphp)
Script per l'integrazione di SPID in applicazioni PHP attraverso l'installazione guidata di SimpleSAMLphp
-
SDK per PHP
Libreria nativa per l'integrazione di SPID in applicazioni PHP
-
SDK per AspNetCore
Libreria nativa per l'integrazione di SPID in applicazioni .NET AspNetCore MVC
-
SDK per .NET
Libreria nativa per l'integrazione di SPID in applicazioni .NET
-
SDK per Django
Libreria nativa per l'integrazione di SPID in applicazioni Django (Python)
-
SDK per NodeJS (Express.js/Passport)
Libreria nativa per l'integrazione di SPID in applicazioni Node/Passport (Typescript/Javascript)
-
SDK per Express.js
Libreria nativa per l'integrazione di SPID in applicazioni Node/Passport (Javascript)
-
SDK per Spring
Libreria nativa per l'integrazione di SPID in applicazioni Java Spring
-
SDK per Ruby
Libreria nativa per l'integrazione di SPID in applicazioni Ruby
-
SDK per Ruby on Rails
Libreria nativa per l'integrazione di SPID in applicazioni Ruby on Rails
-
SDK per Sinatra
Libreria nativa per l'integrazione di SPID in applicazioni Sinatra (Ruby)
-
SDK per Android realizzata da INPS
Libreria nativa per l'integrazione di SPID in applicazioni mobile Android (Java)
-
SDK per iOS realizzata da INPS
Libreria nativa per l'integrazione di SPID in applicazioni mobile iOS
-
SDK per Wordpress
Plugin nativo per l'integrazione del login con SPID in siti Wordpress (PHP)
-
SDK per Laravel
Libreria nativa per l'integrazione di SPID in applicazioni Laravel (PHP)
-
SDK per Symfony
Libreria nativa per l'integrazione di SPID in applicazioni Symfony (PHP)
-
SDK per Drupal
Libreria nativa per l'integrazione di SPID in applicazioni Drupal (PHP)
-
SDK per Perl
Libreria nativa per l'integrazione di SPID in applicazioni Perl
-
SDK per Dancer2
Libreria nativa per l'integrazione di SPID in applicazioni Dancer2 (Perl)
-
SDK per Go
Libreria nativa per l'integrazione di SPID in applicazioni Golang
- Esempio di configurazione di Shibboleth con Nginx tramite un playbook Ansible
-
SDK per Python (Django) con esempi pratici
SPID/CIE OIDC Federation è una collezione di applicazioni Django disegnate per rendere facile costruire e testare una Federazione Openid Connect.
-
SDK per Node.js con esempi pratici
SPID/CIE OIDC Federation Relying Party per Node.js
-
SDK per AspNetCore con esempi pratici
SPID/CIE OIDC Federation SDK per AspNetCore
-
SDK per PHP con esempi pratici
SPID/CIE OIDC Federation Relying Party per PHP
-
SDK per Java con esempi pratici
Libreria nativa per integrare SPID e CIE OIDC in Java con example project in Spring
-
Nimbus Java SDK
Libreria Java per lo sviluppo di entità OAuth2 e OpenID Connect con pieno supporto di OIDC Federation.
-
IdentityPython SATOSA
Python Proxy con immagine Docker per abilitare dei SP SAML2 tradizionali in SPID
-
Keycloak
Keycloak OIDC to SAML2 SPID Proxy
-
Proxy con Shibboleth
Shibboleth IDP con possibilità di delegare l'autenticazione ad un IDP SPID
-
IAM in Python
Applicativo di Identity Access Management compatibile con SPID sviluppato in Python
-
Bottone "Entra con SPID"
Il bottone da inserire nel sito del Service Provider, con integrata la scelta dell'Identity Provider
-
Interfacce grafiche per Identity Provider
Modelli in HTML statico per le interfacce degli Identity Provider
-
Icone, loghi e materiali grafici
Questo repository contiene il logo di SPID, i loghi degli Identity Provider ed altri materiali grafici
-
Bottone "Entra con SPID" (versione smart)
Nuova versione (non ancora ufficiale) del bottone "Entra con SPID", con integrata la scelta dell'Identity Provider
-
SPID Identity Provider di Test
Ambiente di test utilizzato da AgID per il collaudo degli SP in fase di onboarding, eseguibile in locale
-
SPID Quality Assessment e CI
Strumento di validazione dei Service Provider eseguibile via command line e CI
-
Creazione certificati SAML2
Tool per la creazione di certificati X.509 conformi all'Avviso SPID n.29 v3
-
SPID Metadata builder
Tool per la creazione dei metadati SPID di un SP
-
SPID Metadata signer
Tool per la firma dei metadati SPID di un SP
-
Firefox SAML Tracer plugin
Un componente aggiuntivo di Firefox per la visualizzazione dei messaggi SAML inviati tramite il browser durante il Single Sign-On e il Single Logout.
-
Chrome SAML
Un componente aggiuntivo di Chromium per la visualizzazione dei messaggi SAML inviati tramite il browser durante il Single Sign-On e il Single Logout.
-
SAML Developer Tools
Onelogin SAML2 tools