Closed fmarco closed 3 years ago
Ciao Marco, non sò se può interessare quanto ho già implementato con pysaml2 e django, parlo di un SP federato con uno Shibboleth IDP di test:
https://github.com/peppelinux/Django-Identity/tree/master/djangosaml2_sp/djangosaml2_sp
Il setup di Shibboleth IDP lo trovi "ansibilizzato" di seguito: https://github.com/peppelinux/Ansible-Shibboleth-IDP-SP-Debian9
Sicuramente dovrò mandare in produzione qualche SP Spid prima o poi, tutto quello che emergerà da questo thread potrebbe risultare spendibile per l'imminente futuro, ovviamente parteciperò al riuso.
Grazie per l'ottimo lavoro
@peppelinux Ciao,
grazie, appena posso do un'occhiata :)!
riporto qui aggiornamenti, ho federato djangosaml2 con spid-testenv2, purtroppo i metodi ordinari di pysaml2 non funzionano con spid e per utilizzare pysaml2 in questo contesto ho dovuto costruire più a basso livello i metadati, la authn request e il logout request.
Un esempio è qui: https://github.com/peppelinux/Django-Identity/tree/master/djangosaml2_sp/djangosaml2_sp/djangosaml2_spid
Ciao @fmarco,
Ho da poco aggiornato il repository https://github.com/peppelinux/djangosaml2_spid
Nello specifico ho introdotto un costruttore automatico dei contatti, così da ottenere i requisiti esposti nell 'Avviso 29 v3 di Agid. Questa è la parte interessante: https://github.com/peppelinux/djangosaml2_spid/blob/0910d51df3aa8f230f6ac1c8b96a3b69d6544b36/src/djangosaml2_spid/settings.py#L26
ottimo lavoro @peppelinux. Secondo te si riesce a mettere la logica base (che al momento vive in forme simili su progetti diversi) dentro una libreria python in modo da usarla laddove sia utile? In caso mi piacerebbe dare una mano.
I Will asap, Soprattutto unit test, sentiti libero di forkare, io i PR li accetto senza troppi problemi 😉
Entro mezzogiorno creerò un branch "legacy" dove spostare l'attuale master branch e pusho djangosaml2_spid con un example project
Valutare il passaggio a PySAML2 per migliorare la robustezza del codice e gestire tutti i casi possibili ovviando ai limiti imposti dalle librerie di Onelogin. Eventualmente in futuro potrebbe aver senso implementare una libreria python esterna, in modo che ogni libreria basata su python (o framework python) possa accedere a del codice comune, testato e funzionante.