• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Typo3 autenticazione
 

Typo3 autenticazione

on

  • 1,045 views

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.

Statistics

Views

Total Views
1,045
Views on SlideShare
947
Embed Views
98

Actions

Likes
0
Downloads
0
Comments
0

3 Embeds 98

http://www.lorenzutti.net 76
http://www.t3campitalia.it 21
http://fedext.dev 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Typo3 autenticazione Typo3 autenticazione Presentation Transcript

    • Sistemi di autenticazione in TYPO3 Mauro LorenzuttiT3Camp Italia Bologna 28/29 Ottobre 2011Il 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.comPag. 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 customPag. 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 sitoPag. 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 criptataPag. 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-installatePag. 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 feloginPag. 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 accessoPag. 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 customPag. 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 catenaPag. 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 filePag. 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 BEPag. 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 correttePag. 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 TYPO3Pag. 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 autenticazionePag. 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 TYPO3Pag. 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 applicazionePag. 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 facebookPag. 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 importataPag. 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 autenticazionePag. 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 customPag. 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 – IPPag. 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 loginPag. 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 menoPag. 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 utentiPag. 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 customPag. 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/#!/MauroLorenzuttiPag. 37 http://www.t3campitalia.it/