Openid: un modulo per phpnuke per l'accesso al famoso cms attraverso altri provider quali Openid, Google, Yahoo , Facebook, Myspace, WindowsLive e molti altri.
Ecco il manuale di installazione del software.
Modulo Openid ver. 0.3
modulo per l'autenticazione Openid e altri servizi per il cms PhpNuke 7.x
preleva il modulo openid01.zip

Indice
-
Istruzioni per l'uso
-
Prima cosa: registrare il sito
-
Installazione e configurazione
-
Installazione approfondita
-
Aggiungere Facebook
-
Aggiungere MySpace
Licenza d'uso
Il seguente pacchetto è tutelato dalla licenza d'uso libero con le seguenti restrizioni:
-
non vanno cancellati i loghi e/o le righe di link e copyright presenti nel software, ma solo dietro richiesta all'autore
-
la distribuzione ufficiale del pacchetto viene effettuata tramite linuxap.it. Ogni modifica e integrazione per essere considerata ufficiale dovrà essere sottoposta a verifica dell'autore.
-
In eventuali modifiche o integrazioni non ufficiali del software o parti di esso va citato per intero l'autore e il software in ogni file del pacchetto
Il non rispetto di almeno uno di questi termini fa decadere la licenza d'uso del software
Caratteristiche tecniche:
Il software è stato sviluppato e testato su phpnuke 7.6 e 7.9. Richiede php 4 o superiore
Differenze dalla versione precedente 0.2.c
Inclusione della funzione JSON per versioni di php inferiori alla 5.2
Inclusione della lingua nel blocco laterale
Corretto bug per il prelevamento del token
Istruzioni per l'uso
Il modulo Openid per PhpNuke utilizza il servizio RPX di JanRain (http://www.JanRain.com) che procede all'autenticazione presso alcuni server OpenId, Google, Yahoo Openid e verso Facebook e Myspace.

Il servizio offerto è gratuito e il modulo si appoggia a questo servizio, prelevando l'autenticazione e facendola interagire con il cms.
L'utente, una volta autenticato, viene registrato regolarmente nel database del PhpNuke, solo in maniera “provvisoria” in quanto l'email di verifica di solito richiesta dal cms come garanzia di autenticità non è più necessario richiederla.
Non avere l'email significa anche non poter essere contattato direttamente dai software del PN, come per le news-letters e altri servizi.
Di conseguenza è stato adottato un filtro per non far interagire l'utente di altri servizi completamente con il sistema (pannello di controllo), chiedendogli l'email se vuole avere la piena partecipazione al PN.
Una volta registrato, l'utente potrà variare la propria password e quindi avrà la possibilità anche di loggarsi normalmente.
Prima cosa: registrare il sito
Per usare il modulo occorre registrasi ed abilitare il proprio sito su RPX a questo indirizzo:
https://rpxnow.com/account
Per la registrazione è sufficiente avere un account con almeno uno dei servizi che vi chiederà il sito.
Una volta registrati, per far funzionare il modulo dobbiamo prelevare il nome del nostro sito e la chiave api.
Con questi due elementi, da includere nel fine config.php del modulo, possiamo già mettere a disposizione agli utenti del sito phpnuke l'autenticazione da diversi servizi quali: Google, Yahoo, Aol, Blogspot, Wordpress, Flickr, Livejournal, Myopenid, Verisignlabs.
Altri due servizi di autenticazione, come Facebook e Myspace, potranno essere attivati dopo una prassi di registrazione ai relativi siti.

Installazione e Configurazione
Fate l'upload dei file cosi' come sono nella dir pubblica del vostri sito web

Aprite il file includes/config.php e scrivete i valori del nome del sito e della chiave api nelle variabili:
$apiKey="";
$siteRpx="";
Attivate il modulo e il blocco Openid e provate a loggarvi con un account di un altro servizio.
Installazione approfondita (*)
Occorre ora terminate l'installazione attraverso la modifica del file del modulo Your_Account per poter fare i modo di limitare l'accesso completo al sito se non dopo l'invio dell'email.
Aprite il file: modules/Your_account/index.php
Trovate la stringa
include("modules/$module_name/navbar.php");
subito prima aggiungete
include_once("modules/Openid/modulo.php");

Questo potrebbe essere sufficiente , ma se vogliamo perfezionare il tutto ed abbiamo la possibilità di conoscere un po' di codice php, possiamo aggiungere nel modulo You_Account nella schermata di login centrale anche il frame per il rimando all'autenticazione con Rpx.

Aprite il file modules/Your_Account/index.php
Trovare la funzione main
function main($user) {
all'interno della funzione , subito dopo:
$random_num = mt_rand(0, $maxran);
includere questa riga:
echo "<table><tr><td>"; // openid
sempre all'interno della funzione mail, trovare:
CloseTable();
e subito prima includere queste righe:
# login linuxap openid
echo "</td><td width=\"450\" border=\"1\" valign=\"top\">";
include_once("modules/Openid/includes/login.php");
echo "</td></tr></table>";
Tutto qua
(*) la variazione dei file del modulo Your_Account fanno riferimento dalla vers. Phpnuke 7.6 alla 7.9
Aggiungere Facebook
Molti hanno account a Facebook, e quindi chi vuole puo' utilizzare questa possibilità insieme all'OpenId.
Le istruzioni sono sul sito RPX.
Bisogna avere un account facebook, aggiungere una nuova applicazione da qui http://www.facebook.com/developers/editapp.php , riempire il campo con il nome dell'applicazione uguale a quella che è stata data ad RPX, prelevare quindi le due chiavi: la chiave api e la chiave segrete che andranno copiate e incollate nei form della pagina RPX.

Nome:
Chiavi Api e Secret:

Aggiungere Myspace
Come per Facebook, occorre seguire una procedura per poter usufruire dell'autenticazione di questo servizio.
Per la procedura ecco di seguito la traduzione delle informazioni presenti sul sito Rpx.
Step 1. Crea un account su MySpace Developer
-
Vai a questo indirizzo http://developer.myspace.com/Modules/Apps/Pages/ApplyDevSandbox.aspx
-
.Controlla tua casella di posta e la cartella spam per un messaggio di MySpace. La creazione di un account di sviluppatore prende un periodo di tempo arbitrario. Ci sono una serie di casi in cui l'account di sviluppatore è stato approvato e una notifica e-mail non è stata inviata. È possibile revisitare l link qui sopra per verificare lo stato del tuo account di sviluppatore
Step 2. Crea, Configura, e publica una appliczione MySpace
RPX al fine di utilizzare MySpace come un provider di autenticazione, ha bisogno che una specifica domanda su MySpace venga creata, configurata e pubblicata. Tutto ciò è realizzabile mediante il tuo account MySpace di sviluppatore creato in precedenza.
-
Visita il sito dello sviluppo su http://developer.myspace.com
-
Clicca su MyApps link
-
Clicca su "Create New App"
-
Riempi i campi del tuo profilo e clicca "Next".
-
Clicca "Skip" sulla schermata Upload Application XML
-
Riempi il form dell'applicazione
-
Inserisci il testo e le immagini richieste. Le immagini non sono flessibili, per cui mysqpace ha bisogno di avere immagini con l'esatta dimensione specificata.
-
Uncheck la checkbox. installable
-
Check la checkbox exteneral. Il dominio richiesto è quello che vi è stato dato da RPX e presente nella pagina dove dovranno successivamente essere immesse le chiavi . Il dominio e' simile a http://miosito.rpxnow.com
-
Salva la configurazione
-
Torna su MyApps Page
-
Clicca Publish per creare la nuova App
Step 3. Configure RPX by adding the application Key & Secret
-
Riedita l' Applicazione
-
Copia le chiavi segrete
-
nella schermata di configurazione di RPX
-
Salva ancora l'applicazione. L'applicazione non funzionerà se non viene salvata di nuovo!
Note tecniche finali
Database:
potete installare manualmente la tabella presente nel file sql/openid.sql del pacchetto. E comunque stata immessa nel codice una funzione per la prima installazione in automatico. L'installazione manuale si rende necessaria nel caso l'installazione automatica abbia problemi e nel caso vogliate variare il prefisso della tabella.
Viene aggiunta al database del nuke una tabella : nuke_users_openid.
La tabella è allineata con la tabella nuke_users dal momento che la utilizzate.
Quindi se necessaria la cancellazione di un utente nella tabella nuke_users verificare se esista anche nella tabella nuke_users_openid e cancellare anche lì.
Url del sito: verificate che nelle preferenze del vostro sito l'indirizo sia indicato nella maniera corretta.
Icona utente: il phpnuke è agganciato all'utenza attraverso il forum phpbb.
Per le immagini del profilo, non presenti all'atto della prima iscrizione attraverso un autentificatore, viene assegnata una icona presente in modules/Forums/images/avatar/gallery/blank.gif
Nel caso non fosse presente o fosse presente un altro percorso, creare sia l'icona che il percorso
Nota: ultimo aggiornamento 25 Aprile 2009
versione 0.3