Typo3 autenticazione

1,156
-1

Published 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 custom.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,156
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Typo3 autenticazione

  1. 1. Sistemi di autenticazione in TYPO3 Mauro LorenzuttiT3Camp Italia Bologna 28/29 Ottobre 2011Il secondo evento italiano dedicato a TYPO3
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 27. Kickstarter 2/2  Creiamo un servizio:  Service type: «auth»  Sub type: «getUserFE, authUserFE»  Priority: «high (80)»Pag. 27 http://www.t3campitalia.it/
  28. 28. Creiamo un utente  Creiamo un utente di FE:  Settiamo l’IP dal quale effettuare l’autologin:Pag. 28 http://www.t3campitalia.it/
  29. 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. 30. getUser()Pag. 30 http://www.t3campitalia.it/
  31. 31. authUser(&user)Pag. 31 http://www.t3campitalia.it/
  32. 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. 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. 34. Attenzione!  Questa è un’estensione demo, non usare in produzione!!!Pag. 34 http://www.t3campitalia.it/
  35. 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. 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. 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/

×