italia / spid-wordpress

SPID Wordpress plugin (based on SimpleSAMLphp)
GNU General Public License v3.0
14 stars 12 forks source link

Completamento plugin WordPress #9

Open alranel opened 6 years ago

alranel commented 6 years ago

[Inserisco questa issue per poter elencare questo progetto tra quelli su cui lavoreremo ad Hack.Developers]

Il plugin sembra abbastanza completo (non l'ho testato) ma nel README c'è scritto: "WORK IN PROGRESS: NON INSTALLATE QUESTO PLUGIN". Bisogna quindi verificare lo stato di funzionamento e documentare installazione e configurazione (incluso SimpleSAMLphp).

Forse @valerio-bozzolan e @salvorapi che lo hanno sviluppato finora (grazie!) possono aiutarci a capire lo stato del lavoro per facilitare contributi esterni?

valerio-bozzolan commented 6 years ago

Ciao!

Riusciamo a fare autenticazioni statiche fra SimpleSAMLphp e WordPress, riuscendo a loggare/creare utenze di conseguenza. Però non siamo mai riusciti a testare cosa succede al di fuori di SimpleSAMLphp, ad esempio interfacciandosi ad un server SPID, perciò si può dire che questo software non sia mai stato testato (anche perchè avrei un ticket aperto da qualche mese per richiedere utenze di test SPID, ma sono ancora in attesa, ed in generale è da gennaio/febbraio 2017 che stiamo richiedendo informalmente utenze di test per poter capire in pratica il processo d'autenticazione SPID).

Contributi esterni sono ben accetti ma io e @lvps siamo dichiaratamente ingaggiati da parte di Italian Linux Society per sviluppare questo plugin, e perciò non c'è tanto il bisogno di qualcuno assegnato a questo plugin, ma manca più che altro la possibilità di toccare con mano il processo di autenticazione (che è il motivo per cui siamo entrati a contatto con il gentile @salvorapi).

Non aiuta poi il fatto che qualsiasi altro plugin SPID per qualsiasi altro CMS non sia (smentitemi per favore!) pubblicato da nessuna parte.

lvps commented 6 years ago

Oltre a questo...

Riusciamo a fare autenticazioni statiche fra SimpleSAMLphp e WordPress, riuscendo a loggare/creare utenze di conseguenza.

Sì, ma aggirando completamente la questione del bottone, visto che non avevamo capito cosa succede tra quando l'utente preme il bottone "Login con SPID" e quando dobbiamo creare l'utente su WordPress: probabilmente il plugin deve fare un redirect verso una pagina dell'IDP che ci risponderà in qualche modo.

Poi la documentazione si SimpleSAMLPhp è stata aggiornata e ora dovrebbe esserci scritto cosa fare, ma non abbiamo ancora ripreso a lavorarci.

valerio-bozzolan commented 6 years ago

Fra l'altro @alexrj, non é che passando di repo in repo hai trovato per caso un'implementazione di SimpleSPIDPHP per altri CMS? Sarebbe estremamente utile, anche in visione di Hack.Developer, per investire il tempo in programmazione invece che in documentazione :)

alranel commented 6 years ago

@valerio-bozzolan, ti ho mandato una e-mail, forse ho usato un indirizzo che non leggi. Possiamo sentirci al telefono domani?

valerio-bozzolan commented 6 years ago

(In testa al mio profilo GitHub c'é il link al sito con i miei contatti :) Comunque ti ho contattato proprio ora.)

Segnalo che la discussione prosegue in privato.

alranel commented 6 years ago

(Non ho ricevuto nessun tuo messaggio! Prova a rimandarmelo)

Intanto, visto che Hack.Developers si avvicina, scrivo qui. Come prima cosa vi segnalo che è stato rilasciato un ambiente di test per SPID che consiste in un Identity Provider da far girare in locale. Quindi una prima attività che ora si può fare per portare avanti il lavoro è testare questo plugin.

Poi, rispondendo a @lvps: visto che usate SimpleSAMLphp, il bottone di login deve rimandare a SimpleSAMLphp specificando l'Identity Provider prescelto dall'utente, e poi sarà SimpleSAMLphp a fare il redirect verso l'Identity Provider (passando nella query string la AuthnRequest formattata secondo SAML). Quindi da quello che capisco, un'altra attività necessaria per completare questo plugin è integrare/visualizzare il bottone e gestirne la logica.

Proprio in vista di Hack.Developers abbiamo fatto in modo che tutte le issues aperte su github.com/italia con label "help wanted" vengano automaticamente elencate tra le challenge proposte agli sviluppatori. Ovviamente questo non lede in nessun modo la vostra maintainership di questo progetto. Lo scopo di Hack.Developers è di incoraggiare contributi di codice sottoforma di Pull Request, che poi valuteremo insieme e ovviamente voi di ILS, in quanto maintainer, deciderete se incorporare. Ma è un'ottima occasione per avere un aiuto per accelerare le cose.

Come accennavo via e-mail, spero che partecipiate anche voi ad Hack.Developers (fisicamente o nello Slack dedicato - scrivetemi per gli accessi), anche solo perché ci saranno tanti sviluppatori che vorranno parlare con voi.

...rimetto quindi la label "help wanted". :-)

valerio-bozzolan commented 6 years ago

Se una label attirerà anche solo un santone di SimpleSamlPHP... metti tutte le label che vuoi! :stuck_out_tongue:

Salvo imprevisti parteciperemo sicuramente, almeno da remoto.

valerio-bozzolan commented 6 years ago

Se posso concludere la giornata di ieri, ringrazio @alexrj per averci fatto scoprire l'esempio di implementazione con SimpleSAML_Auth_Simple#requestAuth() pubblicato qui e ringrazio @salvorapi per aver chiarito cosa cambi fra esso e SimpleSAML_Auth_Simple#login(), abbandonando quest'ultimo 52da4a00c47a41bf2e879be8f4efad1f68210169. Si scopre l'esistenza del parametro saml:idp per poter comunicare l'IDP a PHPSimpleSaml, dando un senso ai bottoni 92db8afa42f98fb12ad62f29fd1433fd355c1ffe. 🥇

Ringrazio l'entusiasmo del team di Isernia con cui abbiamo trovato un bug nel codice 1b67c94c3e1f97ffabe25974bf2e3e36c1681ed8 e nel Composer 1ae522e7af6b846a504da48372f00c8720aff034. 🐛

Rimane il problema di fondo, e cioè che solo teoricamente questo plugin funziona con SPID, dato che continuiamo a non riuscire a testare un ambiente di service provider con SPID.

Ho aggiunto tutti gli attuali dubbi qui: https://github.com/italia/spid-sp-simplesamlphp/issues/12 :)

valerio-bozzolan commented 6 years ago

@Tabbi7 Ti rispondo qui perché slack.com da mobile non si puó usare.

Valerio, noi ora iniziamo a lavorare sul progetto. Te a che sei arrivato? Ci puoi dare l'ultima versione funzionante da cui possiamo continuare?

Buongiorno! Potete continuare a mandare pull request e saranno sempre bene accette, come già avvenuto per la pull request #10.

Peró, come accennato nella pull request #13, dovreste lavorare dall'ultimo commit. L'ultimo commit é giá qui, non devo darvelo personalmente :)

Per dubbi chiedete pure qui. Ciao! :)

lvps commented 6 years ago

Vi segnalo che ora esiste un altro plugin che fa la stessa cosa di questo, creato da persone probabilmente più competenti di me e @valerio-bozzolan e quindi più funzionante: WPGov/wp-spid-italia.

Consiglio quindi a chi controlla l'organizzazione italia su GitHub (@umbros?) di cancellare questo repo, e magari inglobare l'altro come ha fatto col nostro (prima repo personale, poi passato sotto ILS e infine sotto Developers Italia), per evitare confusione negli utenti e altra duplicazione di sforzi.

Forse sarebbe stato meglio non sviluppare due plugin funzionalmente identici in simultanea, ma d'altra parte abbiamo iniziato oltre un anno fa e da maggio stiamo sempre solo cercando di fare le stesse due cose: integrare SimpleSPIDPhp e testare in qualche modo quello che abbiamo fatto, cose che 7 mesi fa non erano particolarmente facili, mentre ora lo sono sicuramente di più (tanto che il plugin WPGov/wp-spid-italia è stato completato in tempo record).
A tal proposito ringrazio per la disponibilità @umbros, che ci ha fornito alcune preziose indicazioni, e @salvorapi, che ha contribuito allo sviluppo con del codice e creato un sistema per richiedere utenti di test (ora obsoleto in quanto è stato rilasciato un ambiente di test ufficiale).

Ringraziamo anche Nadia Caprotti di PASW per la disponibilità, essendosi offerta di far installare su un nostro server la loro versione modificata di SimpleSAMLPhp al fine di poter completare la creazione del plugin, sebbene non avessimo modo di accedere alla loro libreria in quanto, alla data di tale comunicazione (28 giugno 2017), non sembrava essere ancora pubblica. Ora è anch'essa su GitHub, è utilizzata dal loro plugin e da quanto ho capito ha qualche bug in meno di quella omonima di Developers Italia, quindi sarebbe conveniente unire anche queste librerie in un unico repo per evitare frustrazione inutile negli sviluppatori che in futuro si imbattessero nel fork sbagliato.

Purtroppo non abbiamo potuto usare il loro fork perché, dopo l'email di risposta di @valerio-bozzolan in cui chiedeva innanzitutto dove trovare il repository con il plugin Drupal, nominato più volte nella conversazione come esempio di corretto utilizzo di SimpleSPIDPhp ma che non sembrava più esistere su GitHub, non abbiamo più ricevuto nessuno risposta da alcun membro di PASW.

Ringrazio i partecipanti all'Hack.Developers per i bug risolti e i progressi fatti nell'integrazione di SimpleSPIDPhp, anche se non servirà a molto ora che c'è un altro plugin e un altro fork della libreria, e @alexrj per aver pensato anche al nostro plugin per questa iniziativa.

Personalmente non ho più interesse a completare il plugin, visto che ne esiste un altro di qualità probabilmente superiore e i soldi stanziati da ILS per questo progetto sono già stati consegnati a PASW, quindi rinnovo l'invito a cancellare questo repo e sostituirlo con quello di PASW/WPGov.

Buone feste, o quello che ne resta, a tutti

salvorapi commented 6 years ago

Ciao,

ti ringrazio per la segnalazione del plugin. Da una rapida occhiata al codice sorgente ho visto che l'idea di base è quella di integrare all'interno del plugin una versione di SimpleSAMLPhp compatibile con SPID. Quindi non vedo nulla di "originale" rispetto a quello realizzato fino a qui adesso. Il repository è organizzato molto bene e i contenuti sono di alto livello (ci sono anche i video con le demo!).

Se devo dire la mia, da un lato mi dispiace che non si uniscano gli sforzi delle community di sviluppatori Italiani per completare un lavoro già iniziato tempo fa. Dall'altro lato non vedo nulla di male all'idea di avere diverse versioni di un plugin di WP disponibili per l'integrazione a SPID.

A questo punto lascio la scelta a @umbros su come procedere. Anche io auguri a tutti voi un Buon inizio 2018.