Skip to content
New test Identity Provider for SPID
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ansible move idp key and certiticate to conf Aug 9, 2018
conf
static Remove inline style Jan 11, 2019
templates Link to SPID docs Jan 12, 2019
testenv Remove the xsi:type attribute from the IdP metadata Feb 12, 2019
.coveragerc switch to pytest Aug 6, 2018
.gitignore Add some stuff to .gitignore Dec 2, 2018
.travis.yml add isort and flake8 tox envs to Travis-CI matrix Aug 10, 2018
Dockerfile
LICENSE
README.md
requirements.in Update requirements Oct 31, 2018
requirements.txt Update requirements Oct 31, 2018
requirements_test.txt handle dependecies with pip-compile (#147) Sep 10, 2018
setup.cfg
spid-testenv.py
tox.ini Fix: #154. Reformat code and make build green Sep 18, 2018

README.md

SPID

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

spid-testenv2

Identity Provider di test per SPID

Questo Identity Provider consente agli sviluppatori di verificare le proprie integrazioni con SPID in modo semplice, ottenendo messaggi diagnostici chiari ed assicurandosi dell'interoperabilità.

Può essere facilmente eseguito in locale o su un proprio server seguendo le istruzioni di seguito riportate.

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

Alternativamente alla procedura di installazione manuale è possible installare ed eseguire l'Identity Provider di test usando l'immagine presente su Docker Hub.

Per ottenere la persistenza della configurazione è necessario creare nell'host una directory, da collocarsi in un percorso a piacere (di seguito un suggerimento). Tale directory sarà mappata in conf/ all'interno del container.

mkdir /etc/spid-testenv2

Creare nella directory il file config.yaml e la coppia chiave/certificato per l'IdP, nonché eventuali metadata SP, come indicato nel paragrafo successivo.

Creare il container con il seguente comando:

docker create --name spid-testenv2 -p 8088:8088 --restart=always \
   --mount src="/etc/spid-testenv2",target="/app/conf",type=bind \
   italia/spid-testenv2

Avviare il container:

docker start spid-testenv2

Il log si può visualizzare con il comando:

docker logs -f spid-testenv2

Configurazione

(In caso di installazione via Docker, sostituire conf/ nei seguenti comandi con il percorso alla directory di configurazione creata nell'host.)

Generare una chiave privata ed un certificato.

openssl req -x509 -nodes -sha256 -subj '/C=IT' -newkey rsa:2048 -keyout conf/idp.key -out conf/idp.crt

Creare e configurare il file config.yaml.

cp conf/config.yaml.example conf/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 la lista dei 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.

Autori

Questo software è stato sviluppato dal Team per la Trasformazione Digitale, ed è mantenuto con l'ausilio della community di Developers Italia.

Link utili

You can’t perform that action at this time.