4. A GUARDIA DI COSA?
VPC - Virtual Private Cloud
Parliamo di scenario
Applicativo / Dominio dell’applicazione
Sicurezza delle PaaS
5. 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 😄
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. 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
9. 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
10. DOMINIO DELL’APPLICAZIONE
Parliamo di scenario
Autenticazione
OAUTH 2
Direttamente dalla documentazione di Laravel, che secondo me è
ben fatta… (si trova qui)
11. • 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
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
13. 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
16. 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
18. 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
19. 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