menu di navigazione del network

SPID e Webserver Embedded Twisted Python


(Fabio (Naif) Pietrosanti) #1

Ciao,

per il progetto di Whistleblowing Anticorruzione Opensource GlobaLeaks www.globaleaks.org vorremmo approcciare l’integrazione di SPID, come opzione di autenticazione-identificazione Whistleblower.

GlobaLeaks però, per i suoi design goal di minimalismo e sicurezza, utilizza il webserver integrato e securizzato di Python Twisted (https://github.com/twisted/twisted) e non si appoggia ad un webserver come Apache o NGINX per la sua esecuzione come applicazione ma al suo supporti integrato https://twistedmatrix.com/documents/15.0.0/web/howto/using-twistedweb.html .

Volevo sapere se ad oggi ci sono implementazioni pure-python del supporto SPID che siano già state integrate in situazioni simili, o se c’è qualche progetto che vada in questa direzione?

Non abbiamo funding per l’implementazione SPID, non avendo un progetto specifico di una PA che lo richiede, ma ci piacerebbe effettuare l’analisi tecnologica pubblicamente e magari con un po’ di nostro impegno e un po’ di impegno di qualche opensource enthusiast, riusciamo a tirare fuori un prototipo :slight_smile:

Insomma, questo post per stimolare la raccolta di una analisi tecnologica di quali code snippets si potrebbero “assemblare” per ottenere un autenticatore SPID con un webserver pure python :slight_smile:

Reference GlobaLeaks Ticket https://github.com/globaleaks/GlobaLeaks/issues/2154

Fabio


(Umberto Rosini) #2

Ciao @fpietrosanti,
attualmente non sono stati rilasciati o in sviluppo sistemi che possano fare al caso tuo.
Posso aiutarvi a studiare la soluzione da applicare al vostro progetto?

Umberto Rosini
Agenzia per l’Italia Digitale


(Alessandro Ranellucci) #3

Ciao Fabio,

il progetto più vicino a quello che chiedi è https://github.com/italia/spid-django
(Secondo me l’ideale sarebbe fare un po’ di refactoring in modo da basare spid-django su una libreria spid-python più a basso livello, framework-independent, così da agevolare chi usa altri framework e limitare la duplicazione di codice.)

Un altro progetto pure-Python che abbiamo in Developers Italia è https://github.com/italia/spid-sp-sapspid ma ha un’architettura più ingombrante e non mi sembra quello che cerchi.

Ti segnalo anche che per parlare con gli altri sviluppatori SPID/Python c’è https://slack.developers.italia.it

Ci vediamo a FOSDEM :slight_smile:


(Umberto Rosini) #4

E’ troppo oneroso modificare quello su spid-django, l’ideale è proprio creare un oggetto più a basso livello e sono daccordissimo con te, che faccia al caso loro visto l’utilizzo di Python Twisted. Adesso c’è anche il problema di pysaml2 (https://twitter.com/AlecMuffett/status/950699975767482370). Comunque l’ottimo progetto di Hermes potrebbe essere un’ottima scusa per avviare uno sviluppo…

:slight_smile:

P.S. ci vediamo a FOSDEM :smiley:

Umberto Rosini
Agenzia per l’Italia Digitale


(Fabio (Naif) Pietrosanti) #5

Allora, vedo che Twisted ha un suo framework per l’authentication che è Twisted.Cred che ha vari moduli:
http://twistedmatrix.com/documents/8.0.0/api/twisted.cred.checkers.html

E qui c’è un esempio di modulo oauth2 per Twisted:

Da approfondire!

p.s. A Fosdem mules & frites per tutti!! :slight_smile:


(Umberto Rosini) #6

Ciao @fpietrosanti,
visto che supporta OAuth potete approfondire se OpenID Connect sarebbe supportabile e comunque a naso penso sia, a questo punto, meglio aspettare che rilascio la modalità di implementazione SPID con OpenID Connect di cui sto discutendo sul tavolo tecnico.

Umberto Rosini
Agenzia per l’Italia Digitale


(Fabio (Naif) Pietrosanti) #7

ahhhhhh interessante OpenID Connect http://openid.net/connect/ .

Nella ipotesi-scenario che SPID fosse “fruibile” anche tramite protocollo OpenID Connect, qualunque applicazione OpenID-Connect-enabled, con 2 configurazioni, sarebbe già SPID compliant?

Si, comunque da veloce ricerca, direi che sarebbe fattibile / più facile da implementare!


(Umberto Rosini) #8

Ciao @fpietrosanti,
non so se una soluzione già openid-connect-enabled sarà compliant perchè su openidConnect c’è comunque un profilo da applicare però sicuramente sarà passi avanti in confronto ad una soluzione da svilupparsi completamente.

Umberto Rosini
Agenzia per l’Italia Digitale


(Davide Vaghetti) #9

Ciao,

giusto per chi capitasse su questo post, sappiate che il bug segnalato da @umbros su pysaml2 e’ stato fissato. More info:

Ciao,
Davide


(Fabio (Naif) Pietrosanti) #10

A questo punto sarebbe meraviglioso se qualcuno volesse-potesse implementare nel framework di autenticazione di Twisted SPID con PySAML2 :slight_smile:

Ci vorrebbe qualche open-tenders per implementare in tutti i framework principali il supporto SPID in modo che sia solo da attivare-configurare nella integrazione applicativa!