SlideShare una empresa de Scribd logo
1 de 37
Sistemi di
       autenticazione in
       TYPO3
       Mauro Lorenzutti




T3Camp Italia                                 Bologna 28/29 Ottobre 2011
Il secondo evento italiano dedicato a TYPO3
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.com


Pag. 2                                             http://www.t3campitalia.it/
Scaletta


        Autenticazione standard di TYPO3
        Servizi di autenticazione alternativi
            LDAP
            Facebook
            Database esterni
            Ecc…

        Introduzione alla creazione di un servizio di
         autenticazione custom




Pag. 3                                  http://www.t3campitalia.it/
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 sito




Pag. 4                                            http://www.t3campitalia.it/
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 criptata




Pag. 5                                        http://www.t3campitalia.it/
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-installate




Pag. 6                                          http://www.t3campitalia.it/
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 felogin


Pag. 7                                      http://www.t3campitalia.it/
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 accesso




Pag. 8                                 http://www.t3campitalia.it/
Scaletta


        Autenticazione standard di TYPO3
        Servizi di autenticazione alternativi
            LDAP
            Facebook
            Database esterni
            Ecc…

        Introduzione alla creazione di un servizio di
         autenticazione custom




Pag. 9                                  http://www.t3campitalia.it/
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/
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 catena



Pag. 11                                       http://www.t3campitalia.it/
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 file




Pag. 12                                               http://www.t3campitalia.it/
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/
auth


         Ci sono estensioni per
          l’autenticazione basata
          su IP, certificati, database
          esterni, twitter, google,
          linkedin, ecc. ecc.




Pag. 14                                  http://www.t3campitalia.it/
LDAP


         eu_ldap
         Supporta Active Directory,
          OpenLDAP, …


         Utile soprattutto in ambito
          intranet


         Sia per FE che per BE



Pag. 15                                 http://www.t3campitalia.it/
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 corrette




Pag. 16                                             http://www.t3campitalia.it/
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 TYPO3


Pag. 17                                           http://www.t3campitalia.it/
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 autenticazione


Pag. 18                                             http://www.t3campitalia.it/
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
              TYPO3




Pag. 19                                     http://www.t3campitalia.it/
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
          applicazione




Pag. 20                               http://www.t3campitalia.it/
Processo di autenticazione


         Fornisce un pulsante di login
         L’utente clicca su questo pulsante e si apre un popup
          di facebook




Pag. 21                                   http://www.t3campitalia.it/
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 importata




Pag. 22                                             http://www.t3campitalia.it/
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 autenticazione

Pag. 23                                http://www.t3campitalia.it/
Scaletta


         Autenticazione standard di TYPO3
         Servizi di autenticazione alternativi
             LDAP
             Facebook
             Database esterni
             Ecc…

         Introduzione alla creazione di un servizio di
          autenticazione custom




Pag. 24                                  http://www.t3campitalia.it/
Servizio di autenticazione
                          custom


         Proviamo ad implementare un nostro servizio di
          autenticazione


         Requisiti:
             Login basato su IP
             Associazione fe_user – IP




Pag. 25                                   http://www.t3campitalia.it/
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/
Kickstarter 2/2


         Creiamo un
          servizio:


         Service type:
          «auth»
         Sub type:
          «getUserFE,
          authUserFE»
         Priority:
          «high (80)»

Pag. 27                                     http://www.t3campitalia.it/
Creiamo un utente


         Creiamo un utente di FE:




         Settiamo l’IP dal quale effettuare l’autologin:




Pag. 28                                  http://www.t3campitalia.it/
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/
getUser()




Pag. 30               http://www.t3campitalia.it/
authUser(&user)




Pag. 31                 http://www.t3campitalia.it/
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 login




Pag. 32                                 http://www.t3campitalia.it/
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 meno




Pag. 33                                http://www.t3campitalia.it/
Attenzione!




         Questa è un’estensione demo, non usare in
          produzione!!!




Pag. 34                              http://www.t3campitalia.it/
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 utenti




Pag. 35                                http://www.t3campitalia.it/
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
          custom




Pag. 36                                http://www.t3campitalia.it/
Grazie!


         Grazie a tutti per l’attenzione


         I miei riferimenti:
             mauro.lorenzutti@webformat.com


             http://it.linkedin.com/in/maurolorenzutti


             http://twitter.com/#!/MauroLorenzutti




Pag. 37                                               http://www.t3campitalia.it/

Más contenido relacionado

La actualidad más candente

Corso PHP ENAIP - lezione #05 - 04/02/2014
Corso PHP ENAIP - lezione #05 - 04/02/2014Corso PHP ENAIP - lezione #05 - 04/02/2014
Corso PHP ENAIP - lezione #05 - 04/02/2014Matteo Moro
 
Corso PHP ENAIP - lezione #01 - 17/01/2014
Corso PHP ENAIP - lezione #01 - 17/01/2014Corso PHP ENAIP - lezione #01 - 17/01/2014
Corso PHP ENAIP - lezione #01 - 17/01/2014Matteo Moro
 
Corso PHP ENAIP - lezione #02 - 21/01/2014
Corso PHP ENAIP - lezione #02 - 21/01/2014Corso PHP ENAIP - lezione #02 - 21/01/2014
Corso PHP ENAIP - lezione #02 - 21/01/2014Matteo Moro
 
Corso PHP ENAIP - lezione #04 - 28/01/2014
Corso PHP ENAIP - lezione #04 - 28/01/2014Corso PHP ENAIP - lezione #04 - 28/01/2014
Corso PHP ENAIP - lezione #04 - 28/01/2014Matteo Moro
 
Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Mauro Lorenzutti
 

La actualidad más candente (8)

7. Il browser
7. Il browser7. Il browser
7. Il browser
 
Corso PHP ENAIP - lezione #05 - 04/02/2014
Corso PHP ENAIP - lezione #05 - 04/02/2014Corso PHP ENAIP - lezione #05 - 04/02/2014
Corso PHP ENAIP - lezione #05 - 04/02/2014
 
Corso PHP ENAIP - lezione #01 - 17/01/2014
Corso PHP ENAIP - lezione #01 - 17/01/2014Corso PHP ENAIP - lezione #01 - 17/01/2014
Corso PHP ENAIP - lezione #01 - 17/01/2014
 
Corso PHP ENAIP - lezione #02 - 21/01/2014
Corso PHP ENAIP - lezione #02 - 21/01/2014Corso PHP ENAIP - lezione #02 - 21/01/2014
Corso PHP ENAIP - lezione #02 - 21/01/2014
 
Corso PHP ENAIP - lezione #04 - 28/01/2014
Corso PHP ENAIP - lezione #04 - 28/01/2014Corso PHP ENAIP - lezione #04 - 28/01/2014
Corso PHP ENAIP - lezione #04 - 28/01/2014
 
Corso Web 2.0: I blog
Corso Web 2.0: I blogCorso Web 2.0: I blog
Corso Web 2.0: I blog
 
Open data e business
Open data e businessOpen data e business
Open data e business
 
Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3Aumentiamo la sicurezza in TYPO3
Aumentiamo la sicurezza in TYPO3
 

Destacado

Tesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingTesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingfrancesco pesare
 
Daniel Londero: Magento meets Vagrant
Daniel Londero: Magento meets VagrantDaniel Londero: Magento meets Vagrant
Daniel Londero: Magento meets VagrantMeet Magento Italy
 
Webinar TYPO3 Performance Optimierung
Webinar TYPO3 Performance OptimierungWebinar TYPO3 Performance Optimierung
Webinar TYPO3 Performance OptimierungWolfgang Wagner
 
Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3Mauro Lorenzutti
 
Italgo Information Security Governance
Italgo Information Security GovernanceItalgo Information Security Governance
Italgo Information Security GovernanceGianandrea Daverio
 
TYPO3 per la pubblica amministrazione
TYPO3 per la pubblica amministrazioneTYPO3 per la pubblica amministrazione
TYPO3 per la pubblica amministrazioneRino Razzi
 
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated Platform
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated PlatformTYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated Platform
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated PlatformMauro Lorenzutti
 
TYPO3 and Magento together to manage Panini Stickers
TYPO3 and Magento together to manage Panini StickersTYPO3 and Magento together to manage Panini Stickers
TYPO3 and Magento together to manage Panini StickersMauro Lorenzutti
 

Destacado (11)

Ldap Authentication
Ldap AuthenticationLdap Authentication
Ldap Authentication
 
Tesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computingTesi - L'autenticazione nel cloud computing
Tesi - L'autenticazione nel cloud computing
 
Template Multidevice con TYPO3
Template Multidevice con TYPO3Template Multidevice con TYPO3
Template Multidevice con TYPO3
 
Daniel Londero: Magento meets Vagrant
Daniel Londero: Magento meets VagrantDaniel Londero: Magento meets Vagrant
Daniel Londero: Magento meets Vagrant
 
Webinar TYPO3 Performance Optimierung
Webinar TYPO3 Performance OptimierungWebinar TYPO3 Performance Optimierung
Webinar TYPO3 Performance Optimierung
 
HTML5 con typo3
HTML5 con typo3HTML5 con typo3
HTML5 con typo3
 
Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3Aumentiamo la sicurezza di TYPO3
Aumentiamo la sicurezza di TYPO3
 
Italgo Information Security Governance
Italgo Information Security GovernanceItalgo Information Security Governance
Italgo Information Security Governance
 
TYPO3 per la pubblica amministrazione
TYPO3 per la pubblica amministrazioneTYPO3 per la pubblica amministrazione
TYPO3 per la pubblica amministrazione
 
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated Platform
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated PlatformTYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated Platform
TYPO3 + Magento + SugarCRM + Alfresco: An Enterprise Integrated Platform
 
TYPO3 and Magento together to manage Panini Stickers
TYPO3 and Magento together to manage Panini StickersTYPO3 and Magento together to manage Panini Stickers
TYPO3 and Magento together to manage Panini Stickers
 

Similar a Typo3 autenticazione

TYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novitàTYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novitàRoberto Torresani
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaRoberto Torresani
 
Fun with Machine Translation APIs
Fun with Machine Translation APIsFun with Machine Translation APIs
Fun with Machine Translation APIsMassimo Bonanni
 
Un social network su piattaforma Joomla!
Un social network su piattaforma Joomla!Un social network su piattaforma Joomla!
Un social network su piattaforma Joomla!Carlo Daniele
 
Creatività senza limiti con TYPO3
Creatività senza limiti con TYPO3Creatività senza limiti con TYPO3
Creatività senza limiti con TYPO3William Sbarzaglia
 
Corso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaformaCorso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaformaRoberto Polillo
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Antonio Musarra
 
TYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaTYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaRoberto Torresani
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelAntonio Musarra
 
TYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaTYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaRoberto Torresani
 
20230208-webinar_IDP_resiliente.pdf
20230208-webinar_IDP_resiliente.pdf20230208-webinar_IDP_resiliente.pdf
20230208-webinar_IDP_resiliente.pdfRandom794412
 
Realizzazione di un' interfaccia web per la gestione dei file di log generati...
Realizzazione di un' interfaccia web per la gestione dei file di log generati...Realizzazione di un' interfaccia web per la gestione dei file di log generati...
Realizzazione di un' interfaccia web per la gestione dei file di log generati...Marco Furlanetto
 
Gestione corsi con TYPO3
Gestione corsi con TYPO3Gestione corsi con TYPO3
Gestione corsi con TYPO3Ivano Luberti
 
La sicurezza delle Web Application - SMAU Business Bari 2013
La sicurezza delle Web Application - SMAU Business Bari 2013La sicurezza delle Web Application - SMAU Business Bari 2013
La sicurezza delle Web Application - SMAU Business Bari 2013Massimo Chirivì
 
Smau Bari 2013 Massimo Chirivì
Smau Bari 2013 Massimo ChirivìSmau Bari 2013 Massimo Chirivì
Smau Bari 2013 Massimo ChirivìSMAU
 
Introduzione a sharepoint
Introduzione a sharepointIntroduzione a sharepoint
Introduzione a sharepointSalvatore Fazio
 
Social Bookmarking Presentazione
Social Bookmarking PresentazioneSocial Bookmarking Presentazione
Social Bookmarking PresentazioneGiorgio Bertin
 

Similar a Typo3 autenticazione (20)

TYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novitàTYPO3 Versione 10.4 - Le novità
TYPO3 Versione 10.4 - Le novità
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novita
 
Fun with Machine Translation APIs
Fun with Machine Translation APIsFun with Machine Translation APIs
Fun with Machine Translation APIs
 
Un social network su piattaforma Joomla!
Un social network su piattaforma Joomla!Un social network su piattaforma Joomla!
Un social network su piattaforma Joomla!
 
Creatività senza limiti con TYPO3
Creatività senza limiti con TYPO3Creatività senza limiti con TYPO3
Creatività senza limiti con TYPO3
 
Corso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaformaCorso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaforma
 
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
Liferay SSL/TLS Security. Come configurare il bundle Liferay per abilitare il...
 
TYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novitaTYPO3 Versione 10.1 - Le novita
TYPO3 Versione 10.1 - Le novita
 
Liferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio ExcelLiferay Web Services - Come importare utenti da un foglio Excel
Liferay Web Services - Come importare utenti da un foglio Excel
 
TYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novitaTYPO3 Versione 10.3 - Le novita
TYPO3 Versione 10.3 - Le novita
 
20230208-webinar_IDP_resiliente.pdf
20230208-webinar_IDP_resiliente.pdf20230208-webinar_IDP_resiliente.pdf
20230208-webinar_IDP_resiliente.pdf
 
Single Sign on e OpenID
Single Sign on e OpenIDSingle Sign on e OpenID
Single Sign on e OpenID
 
Realizzazione di un' interfaccia web per la gestione dei file di log generati...
Realizzazione di un' interfaccia web per la gestione dei file di log generati...Realizzazione di un' interfaccia web per la gestione dei file di log generati...
Realizzazione di un' interfaccia web per la gestione dei file di log generati...
 
Gestione corsi con TYPO3
Gestione corsi con TYPO3Gestione corsi con TYPO3
Gestione corsi con TYPO3
 
Dark net.1203
Dark net.1203Dark net.1203
Dark net.1203
 
La sicurezza delle Web Application - SMAU Business Bari 2013
La sicurezza delle Web Application - SMAU Business Bari 2013La sicurezza delle Web Application - SMAU Business Bari 2013
La sicurezza delle Web Application - SMAU Business Bari 2013
 
Smau Bari 2013 Massimo Chirivì
Smau Bari 2013 Massimo ChirivìSmau Bari 2013 Massimo Chirivì
Smau Bari 2013 Massimo Chirivì
 
Introduzione a sharepoint
Introduzione a sharepointIntroduzione a sharepoint
Introduzione a sharepoint
 
Sviluppare applicazioni Facebook
Sviluppare applicazioni FacebookSviluppare applicazioni Facebook
Sviluppare applicazioni Facebook
 
Social Bookmarking Presentazione
Social Bookmarking PresentazioneSocial Bookmarking Presentazione
Social Bookmarking Presentazione
 

Typo3 autenticazione

  • 1. Sistemi di autenticazione in TYPO3 Mauro Lorenzutti T3Camp Italia Bologna 28/29 Ottobre 2011 Il 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.com Pag. 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 custom Pag. 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 sito Pag. 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 criptata Pag. 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-installate Pag. 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 felogin Pag. 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 accesso Pag. 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 custom Pag. 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 catena Pag. 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 file Pag. 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 BE Pag. 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 corrette Pag. 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 TYPO3 Pag. 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 autenticazione Pag. 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 TYPO3 Pag. 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 applicazione Pag. 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 facebook Pag. 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 importata Pag. 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 autenticazione Pag. 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 custom Pag. 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 – IP Pag. 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 login Pag. 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 meno Pag. 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 utenti Pag. 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 custom Pag. 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/#!/MauroLorenzutti Pag. 37 http://www.t3campitalia.it/