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à.
Per ora si raccomanda di usare l'IdP di test già disponibile in https://github.com/italia/spid-testenv
Installare le seguenti librerie di sistema:
-
Create ed attivare un virtualenv
virtualenv -p /path/to/pythonbin env . env/bin/activate
-
Installare i pacchetti necessari tramite pip
pip install -r requirements.txt
-
Creare e configurare il file config.yaml
cp config.yaml.example config.yaml
-
Lanciare l'eseguibile
python spid-testenv.py
Per generare un certificato digitale da associare all'IdP utilizzare il seguente comando
openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:2048 -keyout idp.key -out idp.crt
Nota: Le path dei due file (chiave e certificato) vanno inserite nel file di configurazione config.* .
I log del flusso di login / logout viene registrato nel file idp.log (tramite configurazione pysaml2) e tramite log di Flask.
/add-user
(GET, POST), accesso libero: Consente di aggiungere un utente sull'idp impostandone eventuali attributi spid primari e secondari. Ritorna una response con status code 200./login
(GET, POST), accesso tramite chiave salvata in sessione: Gestisce e processa una AuthnRequest ritornando eventuali messaggei di errore./continue-response
(POST), accesso tramite chiave salvata in sessione: Ritorna una response per la AuthnRequest in ingresso se l'utente acconsente a trasferire gli attributi richiesti./metadata
(GET), restituisce il metadata dell'IdP generato automaticamente, da utilizzarsi nei Service Provider.
Nota: gli endpoint (e rispettivi binding) per SSO e SLO sono impostati tramite file di configurazione.
- SPID su Developers Italia