Sto sviluppando un extranet aziendale dove il mio progetto in Drupal fa parte di una suite di applicativi web, probabilmente ogniuno su server diverse. Grazie a Drupal, il mio sito è avanti alle altre, anche prossimo alla consegna. Tutto gira sotto SSL, proprio tutto, anche l'home page dove si fa il login (l'unica pagina per gli anonimi, fra parentesi).
All'inizio erevamo in accordo col cliente che ogni utente doveva fare il login per ogni applicativo, ma che Drupal avrebbe fatto il 'portale'. Quindi da una pagina autenticata di Drupal, un link ti porta ad un altro applicativo, dove fai di nuovo il login. Gli amministatori aziendale avrebbe dovuto creare un utenza e password (identico) per ogni utente e applicativo. Per esempio se sono utente jhl
password verona
su Drupal, allora sono anche utente jhl
password verona
sul webmail, gestionale, ecc, ecc.
(Ammetto a questo punto che stavo felicemente "passing the buck", cioè rendendo più difficile la vita del cliente, sappendo che esistono soluzioni SSO - Single Sign On - ma sappendo anche che sono potenziali "bagni di sangue", e che sono un pò anemico)
Adesso è arrivato il consulente informatico, ex bancario, che vuole un "single sign on". Dato che il mio progetto è praticamente l'unico 'in piedi', sta chiedendo a me... Si come ho diverse permessi collegati ai ruoli, vedo questo come opportunità, faccio una trasfusione, e mi fiondo su drupal.org, trovando questo splendido panoramica.
Sto cercando di rendere il mio progetto Drupal (con i suoi utenti/ruoli/permessi) il server 'autenticario' per gli altri applicativi, cosi faccio meno lavoro, e non scombussola troppo il mio progettino Drupal.
Quindi ho scartato Bakery - perchè gli altri applicativi sicuramente non sono Drupal, e anche Shared Sign On - perchè sicuramente non condivideremo il database. Quindi mi rimane:
- LDAP
- OAuth
- OpenID
Di questi, vorrei evitare LDAP, perchè mi sembra esaggerato per solo autenticare un utente (e anche perchè mi pare spaventosamente complessa, dovuto alla sua flessibilità), e preferisco che il mio progettino Drupal diventa o Service Provider OAuth o server OpenID verso gli altri applicativi.
Prima che cerco i miei occhiali di lettura, qualcuno ha già avuto esperienza con questi protocolli? Sbaglio a scartare LDAP? Qualche tutorial in giro? E come cavolo faccio a testare questo sistema?
Ogni auito/suggerimento/battuta ben accettato.
John
mmm, non sono sicurissimo, ma mi sembra che i sistemi che elenchi non forniscano un vero e proprio SSO: Per me, SSO vuol dire condividere i dati di sessione e queste soluzioni non lo fanno.
A questo punto, mi chiedo, che senso ha mettere su tu stesso un servizio di provider OpenID, quando potete tranquillamente usarne uno esterno e consolidato (Google, Yahoo!, ecc.). Tanto comunque, chi passerà da Drupal all'applicazione X dovrà comunque riautenticarsi passando dall'OpenID (o altro) provider. Che sia Google o il tuo Drupal, a livello pratico, che differenza fa?
Approfitando di questo sito, ho fatto il login con OpenId, usando l'URL di Google (https://www.google.com/accounts/o8/id)...
Sono un principiante in materia, ma ho trovato gli occhiali, quindi mi sto documentando. Più che dati di sessione si tratta di dati di utente. Quindi con l'URL OpenId si può fare l'autenticazione, e dopo chiedere informazione dell'utente, quale nome e email, per esempio.
Per un sito pubblico come qui, c'è la commodità di non dover ricordare l'ennesima nome/password, e ha senso accettare Id già creati dai sito più importante, Google, Yahoo, et al. Per un sito extranet aziendale (dove saranno gli amministratori a creare gli utenti) la situazione e rovesciato. Sono loro a decidere se, per esempio,
jhl
può avere un utenza, e se si, a quale livello di accesso. Quindi OpenId viene usato per creare un piccolo gruppo di utenti, un ClosedId se vuoi.Beh, se forse volevo creare, che so, un social network per Drupal, allora sono in accordo. Ma questo e un extranet aziendale. Vogliono il controllo totale. Loro decidono chi può essere utente, o non. Arrivi sul portale (Drupal), fai il login normale cioè nome/password, poi quando vai da Drupal al applicativo X Drupal manda l'OpenId, quindi ti trovi già logato (logged in). Applicativo X a questo punto può aggiornarsi sul nome, email, permessi, ecc. Se invece passi prima per X, fornendo l'OpenId allora Drupal ti chiederà il tuo nome/password, per poi tornare a X. Cosi Drupal è anche repository centrale dei utenti (i le loro permessi), e gli altri applicativi fanno replicazione di questi dati.
Fila l'argomento?
Ho appena chiuso tutte miei tab Google, cancellato i cookie, e fatto il login qui con L'URL OpenId di Google. Da questo sito sono stato rediretto alla pagina login di Google, ho scritto il mio nome/password, poi sono stato rediretto qui, con il login compiuto.
John
Più imparo, più dubito.
Non funziona come dici tu.
OpenID non ti "registra" (cioè non apre una sessione con i tuoi dati utente) su un sito, ma ti "autentica". Infatti, tu qui su Drupalitalia continui a essere jhl, anche se entri con il tuo account Google.
Se ti autentichi su Drupal e poi vai su applicazione X, Drupal non passa nessun OpenID, neanche se è provider: applicazione X richiederà un'autenticazione tramite OpenID, che ti rimanderà al sito Drupal e poi torna indietro con risultato positivo e allora permette di caricare i dati utente di applicazione X, che saranno diversi da quelli di Drupal.
In sostanza, se il ragionamento dei tuoi committenti è: "jhl, lavora su un'implementazione SSO, dato che sei più avanti degli altri" e tu gli proponi OpenID, non risolvi il problema, perché comunque gli altri dovranno implementare OpenID dalla loro parte. L'alternativa è far loro leggere i cookie prodotti da OpenID, ma a questo punto che senso ha passare da OpenID? Tanto vale fargli leggere i cookie passati da Drupal, no? Comunque, il fatto che tu sia più avanti nell'implementazione non ti mette nelle condizioni di risparmiare loro del lavoro, perché qualsiasi sistema tu usi, loro dovranno implementarlo in base a quello che fai tu.
Ti ha costato due risposta, ma finalmente ho capito. Hai ragione OpenId != SSO. Menomale che sei tenace. Riprendo gli occhiali, parto da http://it.wikipedia.org/wiki/Single_sign-on e mi documento meglio. Sigh.
Comunque, mentre cercavo L'URL Google OpenId (non cosi facile da trovare) ho scoperto questi:
http://openid.net/2009/05/14/google-and-janrain-release-support-for-the-... (basta le prime 2 paragrafe)
http://code.google.com/apis/accounts/docs/OpenID.html (scrollare per vedere il diagrama)
John
Più imparo, più dubito.
Bene, dopo la precedente virata (comunque sono sempre di bolina)...
La mia ricerca mi ha portato a questi risultati (compatibili con moduli Drupal 6.x, ma ancora non testato):
Che combaccia abbastanza con quest'articolo di 5 giorni fa... Trovato dopo, ovviamente. Sigh.
John
Penso che è meglio anche risuscitare LDAP - modulo ldap_integration, leggendo quest'articolo (non sono dinnouti ;-).
Più imparo, più dubito.
Hei, mi unisco anche io a questa conversazione... il mio problema non è così tanto complicatro, ma vorrei anche io fare in modo di dare agli open id dei permessi anche di postare e commentare.......
ho trovato:
http://drupal.org/project/gigya
(consigliato amnche dal sito ufficiale di drupal
http://drupal.org/project/site_network
http://drupal.org/project/openid_sync
http://drupal.org/project/openlogin
.............
Quelli che stai provando, come stanno andando?
www.dragossido.com drupal 7.x
www.io-ho.com drupal 7.x
www.io-imparo.com drupal 7.x
www.spettacolando.com drupal 7.x
www.napolisgulf.com php
Mi consiglieresti uno di quelli che ho detto io oppure è meglio il LDAP ?
www.dragossido.com drupal 7.x
www.io-ho.com drupal 7.x
www.io-imparo.com drupal 7.x
www.spettacolando.com drupal 7.x
www.napolisgulf.com php
Come abbiamo detto in questo thread OpenID != SSO. Forse meglio aprire un altro thread.
Più imparo, più dubito.
Scusa, apro subito, ho pensato, prima di aprire un nuovo thread, di vedere se c'era uno già che parlava della stessa cosa...
Apro subito l'argomento!
www.dragossido.com drupal 7.x
www.io-ho.com drupal 7.x
www.io-imparo.com drupal 7.x
www.spettacolando.com drupal 7.x
www.napolisgulf.com php