Typo3 autenticazione

  • 1,023 views
Uploaded on

La mia presentazione al T3campItalia 2011. Argomento della presentazione sono stati i sistemi di autenticazione in TYPO3, da LDAP a Facebook, fino allo sviluppo di un servizio di autenticazione …

La mia presentazione al T3campItalia 2011. Argomento della presentazione sono stati i sistemi di autenticazione in TYPO3, da LDAP a Facebook, fino allo sviluppo di un servizio di autenticazione custom.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,023
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Sistemi di autenticazione in TYPO3 Mauro LorenzuttiT3Camp Italia Bologna 28/29 Ottobre 2011Il secondo evento italiano dedicato a TYPO3
  • 2. Mauro Lorenzutti  CTO di Webformat  Sviluppatore e consulente TYPO3 dal 2004  TYPO3 Certified Integrator dal 2009  Sviluppatore di numerose estensioni, tra cui:  DB Integration (wfqbe)  Webformat Shop System (extendedshop)  TYPO3-Alfresco Connector (alfresco)  Contacts:  mauro.lorenzutti@webformat.com  www.webformat.comPag. 2 http://www.t3campitalia.it/
  • 3. Scaletta  Autenticazione standard di TYPO3  Servizi di autenticazione alternativi  LDAP  Facebook  Database esterni  Ecc…  Introduzione alla creazione di un servizio di autenticazione customPag. 3 http://www.t3campitalia.it/
  • 4. Utenti di FE e di BE  Nativamente TYPO3 suddivide gli utenti in due insiemi distinti:  Utenti di Frontend: sono gli utenti che hanno accesso a pagine e contenuti riservati del sito  Utenti di Backend: sono gli utenti che hanno accesso all’area di amministrazione del sitoPag. 4 http://www.t3campitalia.it/
  • 5. Utenti di FE e di BE  Utenti di FE  Salvati nella tabella fe_users  Password in chiaro!!!  Utenti di BE  Salvati nella tabella «be_users»  Password criptataPag. 5 http://www.t3campitalia.it/
  • 6. Proteggiamo le password  Fondamentali per gli utenti di frontend ma utili anche per quelli di backend:  RSA authentication for TYPO3 (rsaauth)  Salted user password hashes (saltedpasswords)  Sono fornite col core di TYPO3 ma NON sono pre-installatePag. 6 http://www.t3campitalia.it/
  • 7. RSA authentication  Cripta le password mediante una coppia di chiavi pubblica e privata rigenerata ad ogni login  La password viene criptata dal client con la chiave pubblica e quindi inviata al server dove viene decriptata con la chiave privata  Più sicuro della cifratura standard delle password di BE  Non influisce su come gli utenti di FE effettuano il login  funziona solo con l’estensione feloginPag. 7 http://www.t3campitalia.it/
  • 8. Salted user password hashes  Consente di salvare le password con un algoritmo più sicuro del classico md5  Può essere installata anche su siti pre-esistenti grazie alla capacità di convertire automaticamente le password degli utenti al primo accessoPag. 8 http://www.t3campitalia.it/
  • 9. Scaletta  Autenticazione standard di TYPO3  Servizi di autenticazione alternativi  LDAP  Facebook  Database esterni  Ecc…  Introduzione alla creazione di un servizio di autenticazione customPag. 9 http://www.t3campitalia.it/
  • 10. Voglio di più!!!  E se non mi basta il database locale di TYPO3?  E se ho già un database utenti e voglio usare quello?  E se volessi usare le stesse credenziali del mio Active Directory?  E se volessi usare le credenziali di Facebook, Google, Twitter, OpenID, ecc. ecc.?Pag. 10 http://www.t3campitalia.it/
  • 11. L’autenticazione come servizio  TYPO3 supporta molteplici metodi di autenticazione sottoforma di servizio  Cosa sono i servizi in TYPO3?  Un servizio rappresenta uno dei possibili metodi per rispondere ad una richiesta  Se un’estensione implementa un servizio deve registrarsi al gestore di quei servizi specificando una priorità  Il gestore richiamerà in sequenza i vari servizi uno dopo l’altro finché non ottiene risposta positiva o termina la catenaPag. 11 http://www.t3campitalia.it/
  • 12. Due esempi di servizi  Dove troviamo il concetto di servizio in TYPO3?  Autenticazione  TYPO3 consente di installare più sistemi di autenticazione in contemporanea  DAM – Digital Asset Management  Il DAM utilizza il concetto di servizio per consentire l’installazione di più estrattori di metadati dai filePag. 12 http://www.t3campitalia.it/
  • 13. Servizi di autenticazione  TYPO3 dispone di un gestore di servizi di autenticazione sia di FE che di BE  Alcuni esempi:  eu_ldap – Autenticazione mediante LDAP  openid – Autenticazione mediante il protocollo OpenID  facebook2t3 – Autenticazione mediante facebook  …Pag. 13 http://www.t3campitalia.it/
  • 14. auth  Ci sono estensioni per l’autenticazione basata su IP, certificati, database esterni, twitter, google, linkedin, ecc. ecc.Pag. 14 http://www.t3campitalia.it/
  • 15. LDAP  eu_ldap  Supporta Active Directory, OpenLDAP, …  Utile soprattutto in ambito intranet  Sia per FE che per BEPag. 15 http://www.t3campitalia.it/
  • 16. Processo di autenticazione LDAP  L’utente inserisce username e password in TYPO3  TYPO3 contatta il server LDAP fornendo username e password  Due possibilità:  A. L’utente esiste e le credenziali sono corrette  B. L’utente non esiste o le credenziali non sono correttePag. 16 http://www.t3campitalia.it/
  • 17. A. Accesso riuscito  Il server LDAP restituisce i dati dell’utente  TYPO3 salva i dati dell’utente inserendo o aggiornando un record nella tabella utenti (fe_users o be_users)  Anche i gruppi possono essere automaticamente importari e associati  Nella tabella utenti viene settata una password random, non quella dell’utente  L’utente viene autenticato in TYPO3Pag. 17 http://www.t3campitalia.it/
  • 18. B. Utente non trovato  Il server LDAP risponde negando l’accesso  TYPO3 richiama il servizio di autenticazione successivo  Se nessun servizio di autenticazione dà esito positivo, l’utente non viene autenticato  Se un servizio di autenticazione riconosce l’utente, l’utente viene loggato  È possibile impedire la prosecuzione nella catena dei servizi di autenticazionePag. 18 http://www.t3campitalia.it/
  • 19. Considerazioni su LDAP  Il primo vantaggio è quello di spostare la gestione delle utenze su un server LDAP condividendo le credenziali di accesso con altri sistemi  Ad ogni accesso viene eseguita l’autenticazione tramite il server LDAP  se un utente viene cancellato o aggiornato sul server LDAP, al suo primo accesso viene cancellato o aggiornato anche in TYPO3Pag. 19 http://www.t3campitalia.it/
  • 20. Facebook Connect  facebook2t3  Consente di autenticare utenti in TYPO3 usando le credenziali di facebook  Richiede la creazione di un’applicazione su Facebook (non serve alcuno sviluppo) per avere un codice applicazionePag. 20 http://www.t3campitalia.it/
  • 21. Processo di autenticazione  Fornisce un pulsante di login  L’utente clicca su questo pulsante e si apre un popup di facebookPag. 21 http://www.t3campitalia.it/
  • 22. Processo di autenticazione  L’utente esegue il login direttamente in facebook  Se il login ha successo, i dati dell’utente vengono importati in TYPO3 creando o aggiornando un record nella tabella utenti  L’utente deve autorizzare l’importazione dei dati  La password NON viene importataPag. 22 http://www.t3campitalia.it/
  • 23. Database esterni  rlmp_extdbauth  Consente di integrare database esterni di utenti  Il processo è sempre lo stesso: l’utente viene autenticato accedendo al database esterno e vengono importati / aggiornati i suoi dati nel db locale  Richiede qualche modifica per funzionare con TYPO3 4.5  Molte volte è più semplice implementare un proprio servizio di autenticazionePag. 23 http://www.t3campitalia.it/
  • 24. Scaletta  Autenticazione standard di TYPO3  Servizi di autenticazione alternativi  LDAP  Facebook  Database esterni  Ecc…  Introduzione alla creazione di un servizio di autenticazione customPag. 24 http://www.t3campitalia.it/
  • 25. Servizio di autenticazione custom  Proviamo ad implementare un nostro servizio di autenticazione  Requisiti:  Login basato su IP  Associazione fe_user – IPPag. 25 http://www.t3campitalia.it/
  • 26. Kickstarter 1/2  Usiamo il kickstarter per iniziare lo sviluppo dell’estensione e per creare un campo aggiuntivo alla tabella utente:Pag. 26 http://www.t3campitalia.it/
  • 27. Kickstarter 2/2  Creiamo un servizio:  Service type: «auth»  Sub type: «getUserFE, authUserFE»  Priority: «high (80)»Pag. 27 http://www.t3campitalia.it/
  • 28. Creiamo un utente  Creiamo un utente di FE:  Settiamo l’IP dal quale effettuare l’autologin:Pag. 28 http://www.t3campitalia.it/
  • 29. Implementiamo il servizio  Apriamo il file sv1/class.user_authip_sv1.php  Cambiamo il genitore della classe come segue: class user_authip_sv1 extends tx_sv_authbase {  Convertiamo la funzione: function process($content=, $type=, $conf=array()) In: function getUser()  Aggiungiamo la funzione seguente: function authUser(&user)Pag. 29 http://www.t3campitalia.it/
  • 30. getUser()Pag. 30 http://www.t3campitalia.it/
  • 31. authUser(&user)Pag. 31 http://www.t3campitalia.it/
  • 32. Proviamo il login  Andiamo ora nel frontend e clicchiamo sul pulsante «Login» senza inserire nessun utente  È possibile anche attivare l’autologin per autenticare l’utente senza farlo passare dalla form di loginPag. 32 http://www.t3campitalia.it/
  • 33. Processo di autenticazione  Mediante la funzione getUser si verifica nel db se esiste un utente associato al REMOTE_ADDR  In caso positivo la funzione authUser resituisce true  In caso negativo la funzione authUser consente di decidere se proseguire con il prossimo servizio di autenticazione o menoPag. 33 http://www.t3campitalia.it/
  • 34. Attenzione!  Questa è un’estensione demo, non usare in produzione!!!Pag. 34 http://www.t3campitalia.it/
  • 35. La potenza dei servizi  Non sottovalutare la potenza dei servizi!  Mediante un’estensione è possibile integrare qualsiasi sorgente di utenti esterna  Ci sono già moltissime estensioni per integrare sorgenti esterne di utentiPag. 35 http://www.t3campitalia.it/
  • 36. Q&A  Abbiamo visto come proteggere le password dei nostri utenti  Abbiamo introdotto il concetto di «servizio»  Abbiamo analizzato due servizi di autenticazione molto diffusi (ldap e facebook)  Abbiamo abbozzato un servizio di autenticazione customPag. 36 http://www.t3campitalia.it/
  • 37. Grazie!  Grazie a tutti per l’attenzione  I miei riferimenti:  mauro.lorenzutti@webformat.com  http://it.linkedin.com/in/maurolorenzutti  http://twitter.com/#!/MauroLorenzuttiPag. 37 http://www.t3campitalia.it/