Open peppelinux opened 3 years ago
Ciao @peppelinux, si ci fu un refactor ormai molti anni fa non condotto da noi di cui non abbiamo seguito effettivamente l'evoluzione. Probabilmente @davidlibrera, che ha riscritto la gemma puo darci una mano.
@peppelinux
Salve, buonasera. Chiedo venia per non aver visto per un così lungo periodo la menzione ma ci sono state una serie di problematiche. Sono disponibile a qualunque chiarimento e chiedo venia nuovamente.
Ciao @davidlibrera
Non preoccuparti, siamo liberi contributori. Che ne pensi di aprire un repo per spid-cie-oidc-rails e tirare dentro anche @mdrew
Ciao @davidlibrera
Non preoccuparti, siamo liberi contributori. Che ne pensi di aprire un repo per spid-cie-oidc-rails e tirare dentro anche @mdrew
Da parte mia disponibilissimo!
La libreria openid connect di Ruby al momento non supporta il federation e mi sto iniziando a studiare come modificarla. Avevo aperto una issue , ma non ho avuto risposta, lunedì passerò al fork 👍
Se si sistema la libreria dovremmo guadagnare facilmente la compatibilità con devise e omniauth.
Su oidc federation per RP in SPID/CIE non c'è molto da preoccuparsi, gli IDP non hanno intermediari, quindi si fa prima una chiamata a
.well-knwon/openid-federation dell'op eppoi un fetch di entity statement dal trust anchor (Agid o MinInterno) per la verifica della firma. Tutto qui.
Essendo gli IDP ben definiti all'interno della federazione si possono collezionare in una lista e aggiornare periodicamente le trust chain, con un comando schedulato. questo torna utile per la costruzione dinamica dello spid button.
qui trovate una implementazione https://github.com/italia/spid-cie-oidc-django/blob/main/docs/technical_specifications/RELYING_PARTY.md#general-settings-paramenters
@MdreW se volete un consiglio, prendete una libreria per creare/verificare/(de)criptare JWT/JWS/JWE
un RP sono 2 endpoint oidc standard (authz e callback), un endpoint oauth2 (revocation) e un endpoint oidc federation (.well-knwon/openid-federation)
ci vuole più tempo a modificarla una libreria che a fare 4 jwt a mano inoltre, usando una libreria SPID/CIE specializzata non andreste in conflitto usando l'altra libreria contemporaneamente se già in un progetto ci fosse una autentica oidc/oauth2
per il resto, sentitevi liberi
@MdreW @peppelinux per chiarezza: l'architettura attuale è composta da 3 librerie
spid-ruby che è l'implementazione del protocollo SPID/SAML in linguaggio ruby e sopra di esse 2 librerie: una è la qui presente spid-rails mentre l'altra è spid-sinatra che altro non sono che wrapper intorno alla libreria ruby per adattarla agli specifici framework (ad esempio esiste anche hananirb che essendo potrebbe usare direttamente spid-ruby o richiedere qualcosa sopra).
Io in virtù di questo sarei propenso a sviluppare un qualcosa come spid-oidc-ruby e valutare se fare dei wrapper esterni, che ne dite?
Ciao @descovi
Abbiamo ricevuto alcune segnalazioni da parte degli sviluppatori che ci indicano che questo repository conterrebbe risorse non allineate con lo stato attuale delle Specifiche SPID.
Spero di ottenere un tuo gentile feedback entro la prossima settimana, Grazie e a presto