/spid-testenv2

New test Identity Provider for SPID

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

SPID

Join the #spid-testenv channel Get invited SPID on forum.italia.it

⚠️ WORK IN PROGRESS ⚠️

spid-testenv2

Identity Provider di test per SPID

Questo repository ospita lo sviluppo di un nuovo Identity Provider di test per consentire agli sviluppatori di verificare le proprie integrazioni con SPID in modo semplice, ottenendo messaggi diagnostici chiari ed essere certi dell'interoperabilità.

Ad oggi questo pacchetto è funzionante ma è in corso un lavoro di evoluzione e documentazione. Se ne raccomanda l'uso, ed eventuali problemi possono essere segnalati aprendo issue.

In alternativa è possibile usare il precedente IdP di test.

Requisiti

Installare le seguenti librerie:

Su MacOS X si può usare brew install libxmlsec1 libffi.

Su Debian/Ubuntu si può usare apt-get install libxmlsec1 libffi6.

Installazione

Manuale

Creare ed attivare un virtualenv (opzionale ma raccomandato)

virtualenv -p `which python` env
. env/bin/activate

Installare i pacchetti necessari tramite pip

pip install -r requirements.txt

Ansible

Alternativamente alla procedura di installazione manuale riportata sopra, è possible installare l'Identity Provider di test tramite lo strumento di configuration management ansible. Tutte le informazioni sono nella directory ansible/.

Docker

TODO

Configurazione

Generare una chiave privata ed un certificato.

openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout idp.key -out idp.crt

Creare e configurare il file config.yaml.

cp config.yaml.example config.yaml

L'unico valore che è necessario modificare rispetto ai default è metadata, che contiene i metadata dei Service Provider che si intendono collegare all'IdP di test. Per generare tali metadati vi sono tre possibilità:

  1. compilarli a mano a partire dal file sp_metadata.xml.example;
  2. compilarli usando l'interfaccia disponibile in https://idp.spid.gov.it:8080/
  3. generarli (ed esporli) automaticamente dalla propria implementazione Service Provider (ad esempio https://www.mioserviceprovider.it/spid/metadata).

Avvio

python spid-testenv.py

Home page

Nella home page è presente una lista di Service Providers registrati sull'IdP di test.

Metadata IdP

Il metadata dell'Identity Provider di test è generato automaticamente ed esposto all'URL /metadata. Questo metadata deve essere inserito nella configurazione del proprio Service Provider.

Utenti

Gli utenti di test sono configurati nel file users.json e possono essere aggiunti chiamando la pagina /add-user.

Logging

Il log del flusso di login / logout viene registrato nel file idp.log (tramite configurazione pysaml2) e inviato in STDOUT insieme al log del web server.

Maintainer

Questo repository è mantenuto da AgID - Agenzia per l'Italia Digitale con l'ausilio del Team per la Trasformazione Digitale.

Link utili