Successfully reported this slideshow.
Your SlideShare is downloading. ×

Laravel & Passport

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 23 Ad

More Related Content

Recently uploaded (20)

Advertisement

Laravel & Passport

  1. 1. GABRIELE CAVIGIOLO gabri.cavi@gmail.com Facebook ~ mrgabricavi Twitter ~ MrGabriCavi GitHub ~ MrGabriCavi / gabricavisyn LinkedIn ~ Gabriele Cavigiolo Senior Back-end Developer @ Synesthesia Apprentice Cloud Architect DevOps & CD/CI passionate AGILE & SCRUM bedswerver husband
  2. 2. FORK RILASCIATI IN PRODUZIONE Enrico Sofia
  3. 3. A GUARDIA DI COSA? VPC - Virtual Private Cloud Parliamo di scenario Applicativo / Dominio dell’applicazione Sicurezza delle PaaS
  4. 4. PERCHE’ ? Parliamo di scenario • Permette di avere un framework “di lavoro” che va oltre le mere vendor ed helpers • La community è solida e prolifera • La documentazione è curata • Il codice è di qualità e con sintassi elegante • Questi bellissimi eventi - con talk d’eccezione 😎 - sono un valore aggiunto 😍 (Applauso al GrUSP grazie!) Secondo mia opinione 😄
  5. 5. DOMINIO DELL’APPLICAZIONE Parliamo di scenario Free access Web Interface Free access RESTful API Restricted access RESTful API Free access Mobile Interface Restricted access Web Interface Restricted access Mobile Interface
  6. 6. DOMINIO DELL’APPLICAZIONE Parliamo di scenario Free access Web Interface Free access RESTful API Restricted access RESTful API Free access Mobile Interface Restricted access Web Interface Restricted access Mobile Interface
  7. 7. DOMINIO DELL’APPLICAZIONE Parliamo di scenario Autenticazione Autorizzazione OAUTH 2 (?) VS E
  8. 8. DOMINIO DELL’APPLICAZIONE Parliamo di scenario Autenticazione OAUTH 2 • Protocollo aperto “industry standard for authorization” (cit. https://oauth.net/2/) • Permette di autenticare “client” e “utenti” • Risponde allo scenario in maniera completa
  9. 9. DOMINIO DELL’APPLICAZIONE Parliamo di scenario Autenticazione OAUTH 2 Direttamente dalla documentazione di Laravel, che secondo me è ben fatta… (si trova qui)
  10. 10. • Può utilizzare Token in standard JWT (?) • Permette l’autenticazione di single page application • Ottima soluzione “senza le complicazioni di OAuth” (se non ne hai bisogno!) SANCTUM Parliamo di scenario PASSPORT • Utilizza token JWT • Permette l’autenticazione di SPA / Client API / SaaS / BE qualsiasi cosa OAuth2 compliant • La complessità dovuta alla configurazione di Oauth è mitigata dagli automatismi del componente Entrambi sono Packages ufficiali e la documentazione può essere consultata sul sito principale di Larvale
  11. 11. CHE COS’È OAUTH 2? Oauth 2 • E’ un framework di Autorizzazione • Definisce degli standard per l’accesso per applicazioni di terze parti • E’ un evoluzione della versione 1, oramai considerata obsoleta
  12. 12. CHE COS’È OAUTH 2? Oauth 2 • E’ un framework di Autorizzazione • Definisce degli standard per l’accesso per applicazioni di terze parti • E’ un evoluzione della versione 1, oramai considerata obsoleta • Questo ci serve! • Le applicazioni Saas potrebbero essere di terze parti (clienti esterni) oppure potremmo considerarle tutte come di “terze parti” • Le procedure di grant si sono consolidate
  13. 13. QUESTO TANDEM CI PIACE! LARAVEL & PASSPORT: SCELGO VOI!
  14. 14. Oggi vi presento: Tippy Doorman (Ovvero Laravel e Passport Boosted!)
  15. 15. INSTALLAZIONE FRAMEWORK + PACKAGE 1. Seguire la documentazione con i seguenti accorgimenti: A. Configurare il modulo “auth” che è installabile automaticamente B. Installare specificando l’uso dello standard uuid per i client C. Ricordarsi di generare chiavi pubblica e privata Installazione & Configurazione 2. Tenere presente che si utilizzano token JWT 3. Conoscere i flussi Oauth 2 che Passport implementa
  16. 16. FLUSSI DI AUTORIZZAZIONE OAuth 2 in Passport
  17. 17. FLUSSI DI AUTORIZZAZIONE OAuth 2 in Passport •Password grant •Client credential grant •Authorization code grant • Verrà dismesso presto (giustamente) • Prevede lo scambio password • Moltiplica i centri di criticità (dove si scambia la password) • Destinato all’accesso server-to-server, tipico SaaS all’interno di una Cloud Architecture • La tecnica PCKE aumenta il livello di sicurezza • E’ il flusso preferito per l’accesso sia di applicazioni di terze parti sia dei fronte-end del nostro scenario • C’è un solo punto di criticità di scambio password
  18. 18. QUALI IMPROVEMENT? Boosted Passport •Scope gestiti anche su DB •Client associati ai gruppi utenti: unità minima nel gruppo (sconfinando nei concetti di autorizzazione) •Token JWT che permettono l’autorizzazione senza contattare l’authentication provider (Tippy Doorman) • Permette di gestire gli scope e associarli ai client (abbasso lo scope *) • Generiamo dinamicamente un JSON • Per limitare l’accesso e tenere sotto controllo gli applicativi di terze parti • I gruppi ci permettono di avere una base solida da utilizzare anche nelle ACL • Velocizza incredibilmente il flusso di autenticazione runtime • Il tempo di esecuzione viene inficiato minimamente • L’id dello user diventa globale nella infrastruttura cloud
  19. 19. ESEMPIO PRATICO SCENARIO Boosted Passport PC / Laptop User WEB APP Tippy Doorman API PhP SaaS API Python SaaS API PhP Lumen SaaS
  20. 20. IL TOKEN Boosted Passport PC / Laptop User WEB APP Tippy Doorman API PhP SaaS API Python SaaS API PhP Lumen SaaS
  21. 21. LA BLACK LIST Boosted Passport PC / Laptop User WEB APP Tippy Doorman API PhP SaaS API PhP Lumen SaaS
  22. 22. GRAZIE DELL’ATTENZIONE E BUONE FESTE

×