SlideShare a Scribd company logo
1 of 29
Download to read offline
A cura di Mario Rossano
JWT: JSON Web Tokens
LinuxDay Napoli 2017
Star Trek enthusiast
CTO Netlogica – web and software engineering
NaLUG member
CPAN author
Italian Perl Community member
anak@cpan.org
software@netlogica.it
https://netlogica.it
$ ./bye_bye_cookie_and_session > improved CyberSecurity and Scalability
{
"JWT": {
"question1": "cos’è",
"question2": "come è fatto?",
"question3": "a cosa serve?",
"question4": "è sicuro?",
"declaration1": "vantaggi",
"declaration2": "classi",
"example": "case study"
}
}
JWT: JSON Web TokensJWT: JSON Web Tokens
LinuxDay Napoli 2017
● È uno standard (RFC 7519) per la trasmissione di
informazioni
● Le informazioni sono impacchettate in formato JSON
● Implementa diversi algoritmi crittografici per la firma
delle informazioni che trasporta
● Implementa internamente un MAC per la verifica delle
informazioni trasmesse
● È self-contained ovvero trasporta in sé tutti i dati
necessari per il suo utilizzo
JWT: JSON Web Tokens /> cos’è?cos’è?JWT: JSON Web Tokens /> cos’è?cos’è?
● È formato da tre stringhe codificate in base64
qualitativamente differenti e separate dal punto “.”
(ASCII 46)
JWT: JSON Web Tokens /> come è fatto?come è fatto?JWT: JSON Web Tokens /> come è fatto?come è fatto?
header è costituito da due parti
● typ: dichiarazione del tipo
● alg: algoritmo crittografico
JWT: JSON Web Tokens /> come è fatto? >come è fatto? > headerheaderJWT: JSON Web Tokens /> come è fatto? >come è fatto? > headerheader
{
"typ": "JWT",
"alg": “HS256”
}
payload contiene le informazioni da trasferire
Ad es.:
● id: identificativo utente
● name: nome e cognome utente
● role: privilegio utente
JWT: JSON Web Tokens /> come è fatto? >come è fatto? > payloadpayloadJWT: JSON Web Tokens /> come è fatto? >come è fatto? > payloadpayload
{
"id": "1234567",
"name": “John Doe”,
"role": “admin”
}
signature è la firma per la verifica dei dati
Costruita mediante hash della concatenazione di
header, payload con secret come sale crittografico
(chiave segreta - stringa)
var encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload);
HMACSHA256(encodedString, 'secret');
JWT: JSON Web Tokens /> come è fatto? >come è fatto? > signaturesignatureJWT: JSON Web Tokens /> come è fatto? >come è fatto? > signaturesignature
Il token completo è quindi del tipo seguente:
JWT: JSON Web Tokens /> come è fatto? >come è fatto? > risultatorisultatoJWT: JSON Web Tokens /> come è fatto? >come è fatto? > risultatorisultato
JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve?
JWT è utilizzato per gestire l’autenticazione utente
JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve?
JWT è utilizzato per gestire l’autenticazione utente
Ad esempio viene implementato da...
JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve?
● HTTP è un protocollo stateless. Per
"ricordare" che un utente è loggato si
usano le sessioni
● Le sessioni sono costituite da un
oggetto server-side (ad es. id utente) e
da un cookie contenente ad es. l'id
dell'oggetto server-side
Prima di JWT… client → server
JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve?
● Se il servizio esposto è più complesso
e richiede server specializzati in ottica
microservices il dualismo cookie-
session non funziona: i server
ignorano le sessioni degli altri.
● Allo stesso modo anche un sistema di
bilanciamento del carico di un
webserver canonico produce la stessa
problematica
Come si è risolto?
Prima di JWT… client → multiple server
JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve?
...come si è risolto?
● Interponendo un proxy che gestisce le
transazioni e provvede a uniformare le
sessioni
● Risolto? Si, ma con incremento di
complessità e perdita di scalabilità
C’è di meglio?
Prima di JWT… client → multiple server
JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve?
...come si è risolto?
● Interponendo un proxy che gestisce le
transazioni e provvede a uniformare le
sessioni
● Risolto? Si, ma con incremento di
complessità e perdita di scalabilità
C’è di meglio? Si!
Prima di JWT… client → multiple server
JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve?
● Il server verifica le credenziali al login
e rilascia il token
● l’utente memorizza il token localmente
● Il client, per tutte le successive
richieste all’infrastruttura servente,
invierà il token che sarà verificato ad
ogni richiesta
Con JWT… client → single/multiple server
JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve?
Con JWT… client → login on multiplatform
JWT: JSON Web Tokens /> è sicuro?è sicuro?JWT: JSON Web Tokens /> è sicuro?è sicuro?
Si! Se applicato nel modo corretto.
● E’ consigliabile trasferire JWT tramite
HTTPS
● La signature può essere effettuata
anche con RSARSA, separando quindi
chiave pubblica dalla privata
● Inoltre JWT assicura la veridicità della
chiamata mediante MAC
Message Authentication Code
JWT: JSON Web Tokens /> è sicuro? MACè sicuro? MACJWT: JSON Web Tokens /> è sicuro? MACè sicuro? MAC
Flusso di un MAC
JWT: JSON Web Tokens /> vantaggivantaggiJWT: JSON Web Tokens /> vantaggivantaggi
● Stateless: non occorre gestire session. Ottimale per applicazioni RESTful
● Portabile: un solo token può essere riutilizzato su differenti backend, domini,
applicazioni
● Cookieless: sul client il token può essere salvato dove si vuole: localStorage,
indexDB o anche cookie(?!) :O (ndr. non lo farete vero?)
● Mobile friendly: implementabile ovunque, su web, su app native (per cui la
gestione cookie avrebbe richiesto uno sforzo aggiuntivo)
● Built-in Expiration: dichiarando il claim exp nell’header
● CORS friendly: Cross-Origin Resource Sharing
● Decentralizzato: il token può essere generato ovunque
● Performance: cercare sessioni nel db ed estrarre le informazioni
è dispendioso rispetto al calcolo di un HMACSHA256
● Standard: le specifiche RFC7519 sono state implementate in numerosi
ambienti
JWT: JSON Web Tokens /> classiclassiJWT: JSON Web Tokens /> classiclassi
.NET Node.js Java PHP
Python Javascript Perl Ruby
Haskell Swift Objective-C C
Lista aggiornata su:
Haskell
https://jwt.io/
JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study
Programma il Futuro è il progetto del
CINI e del MIUR in collaborazione con
Code.org per la diffusione del pensiero
computazionale in Italia.
JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study
Programma il Futuro è il progetto del
CINI e del MIUR in collaborazione con
Code.org per la diffusione del pensiero
computazionale in Italia.
Nell’anno scolastico 2016/17 sono stati coinvolti 1’600’000 studenti
JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study
Programma il Futuro è il progetto del
CINI e del MIUR in collaborazione con
Code.org per la diffusione del pensiero
computazionale in Italia.
Nell’anno scolastico 2016/17 sono stati coinvolti 1’600’000 studenti
TIM in qualità di partner del progetto ha fornito a Programma il Futuro
la sua piattaforma di crowdfunding per sostenere le attività nel triennio
2017/20
JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study
Programma il Futuro è il progetto del
CINI e del MIUR in collaborazione con
Code.org per la diffusione del pensiero
computazionale in Italia.
Nell’anno scolastico 2016/17 sono stati coinvolti 1’600’000 studenti
TIM in qualità di partner del progetto ha fornito a Programma il Futuro
la sua piattaforma di crowdfunding per sostenere le attività nel triennio
2017/20
Occorreva quindi un metodo sicuro e
verificato per comunicare i dati dei
donatori dalla piattaforma di crowdfunding
a PIF per eseguire alcune
operazioni a valle. Come?
JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study
Programma il Futuro è il progetto del
CINI e del MIUR in collaborazione con
Code.org per la diffusione del pensiero
computazionale in Italia.
Nell’anno scolastico 2016/17 sono stati coinvolti 1’600’000 studenti
TIM in qualità di partner del progetto ha fornito a Programma il Futuro
la sua piattaforma di crowdfunding per sostenere le attività nel triennio
2017/20
Occorreva quindi un metodo sicuro e
verificato per comunicare i dati dei
donatori dalla piattaforma di crowdfunding
a PIF per eseguire alcune
operazioni a valle. Come?
JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study
JWT: JSON Web Tokens /> Riferimenti JWTRiferimenti JWTJWT: JSON Web Tokens /> Riferimenti JWTRiferimenti JWT
● Specifiche JWT → RFC7119 https://tools.ietf.org/html/rfc7519
● Debugger e classi → https://jwt.io/
LinuxDay Napoli 2017
JWT: JSON Web Tokens /> Riferimenti autoreRiferimenti autoreJWT: JSON Web Tokens /> Riferimenti autoreRiferimenti autore
Mario Rossano aka Anak
● Web: https://netlogica.it
● Facebook: https://facebook.com/netlogica
● Twitter: https://twitter.com/Mario_Rossano
● MetaCPAN: https://metacpan.org/author/ANAK
● SlideShare: https://www.slideshare.net/Anakthewolf
LinuxDay Napoli 2017
JWT: JSON Web Tokens /> exitexitJWT: JSON Web Tokens /> exitexit
Grazie a Voi per l’attenzione
al NaLUG per l’organizzazione
ed alla Federico II per la consueta ospitalità :-)
LinuxDay Napoli 2017

More Related Content

Similar to Json Web Tokens

Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
Whymca
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8
DotNetCampus
 
Tesi Triennale: Navigazione automatica e rilevazione di errori in applicazion...
Tesi Triennale: Navigazione automatica e rilevazione di errori in applicazion...Tesi Triennale: Navigazione automatica e rilevazione di errori in applicazion...
Tesi Triennale: Navigazione automatica e rilevazione di errori in applicazion...
Federico Villa
 

Similar to Json Web Tokens (20)

Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Internet-of-things, sicurezza, privacy, trust
Internet-of-things, sicurezza, privacy, trustInternet-of-things, sicurezza, privacy, trust
Internet-of-things, sicurezza, privacy, trust
 
Da A a Bot con un pizzico di Cognitive
Da A a Bot con un pizzico di CognitiveDa A a Bot con un pizzico di Cognitive
Da A a Bot con un pizzico di Cognitive
 
Node and the Cloud
Node and the CloudNode and the Cloud
Node and the Cloud
 
SkyMedia: La tecnologia al servizio dell'intrattenimento
SkyMedia: La tecnologia al servizio dell'intrattenimentoSkyMedia: La tecnologia al servizio dell'intrattenimento
SkyMedia: La tecnologia al servizio dell'intrattenimento
 
XMASDEV 2018 - XMAS GIFT ASSISTANT
XMASDEV 2018 - XMAS GIFT ASSISTANTXMASDEV 2018 - XMAS GIFT ASSISTANT
XMASDEV 2018 - XMAS GIFT ASSISTANT
 
BlockChain e Token Digitali - Webinar gratuito
BlockChain e Token Digitali - Webinar gratuitoBlockChain e Token Digitali - Webinar gratuito
BlockChain e Token Digitali - Webinar gratuito
 
m-v-vm @ UgiAlt.Net
m-v-vm @ UgiAlt.Netm-v-vm @ UgiAlt.Net
m-v-vm @ UgiAlt.Net
 
Html5
Html5Html5
Html5
 
Node.js - Server Side Javascript
Node.js - Server Side JavascriptNode.js - Server Side Javascript
Node.js - Server Side Javascript
 
iDialoghi: L'alba dell'IPv6: opportunita' e problemi
iDialoghi: L'alba dell'IPv6: opportunita' e problemiiDialoghi: L'alba dell'IPv6: opportunita' e problemi
iDialoghi: L'alba dell'IPv6: opportunita' e problemi
 
Mobile e Smart Client
Mobile e Smart ClientMobile e Smart Client
Mobile e Smart Client
 
Win05 accesso ai dati in win 8
Win05   accesso ai dati in win 8Win05   accesso ai dati in win 8
Win05 accesso ai dati in win 8
 
Blockchainvis Backend
Blockchainvis BackendBlockchainvis Backend
Blockchainvis Backend
 
Java Conference 2006 Dessi Massimiliano
Java Conference 2006 Dessi MassimilianoJava Conference 2006 Dessi Massimiliano
Java Conference 2006 Dessi Massimiliano
 
HTML5 Security
HTML5 SecurityHTML5 Security
HTML5 Security
 
Asynchronous Java ME and XML
Asynchronous Java ME and XMLAsynchronous Java ME and XML
Asynchronous Java ME and XML
 
Tesi Triennale: Navigazione automatica e rilevazione di errori in applicazion...
Tesi Triennale: Navigazione automatica e rilevazione di errori in applicazion...Tesi Triennale: Navigazione automatica e rilevazione di errori in applicazion...
Tesi Triennale: Navigazione automatica e rilevazione di errori in applicazion...
 
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
Drupal Day 2012 - Applicazioni mobile multipiattaforma integrate con Drupal 7...
 

More from NaLUG

More from NaLUG (20)

Grid System
Grid SystemGrid System
Grid System
 
Cyber Forensic
Cyber ForensicCyber Forensic
Cyber Forensic
 
Digital Divide
Digital DivideDigital Divide
Digital Divide
 
Drupal
DrupalDrupal
Drupal
 
Digital Forensic
Digital ForensicDigital Forensic
Digital Forensic
 
Open Source: strumento per l'e-democracy
Open Source: strumento per l'e-democracyOpen Source: strumento per l'e-democracy
Open Source: strumento per l'e-democracy
 
OpenHardware : Arduino
OpenHardware : ArduinoOpenHardware : Arduino
OpenHardware : Arduino
 
Understanding Linux
Understanding LinuxUnderstanding Linux
Understanding Linux
 
Net Neutrality: HoBBIT
Net Neutrality: HoBBITNet Neutrality: HoBBIT
Net Neutrality: HoBBIT
 
Opensource per un Sistema Informativo Territoriale
Opensource per un Sistema Informativo TerritorialeOpensource per un Sistema Informativo Territoriale
Opensource per un Sistema Informativo Territoriale
 
Knomos
Knomos Knomos
Knomos
 
App comunicazione comune di Napoli
App comunicazione comune di NapoliApp comunicazione comune di Napoli
App comunicazione comune di Napoli
 
BISmark : the broadband internet service benchmark
BISmark : the broadband internet service benchmarkBISmark : the broadband internet service benchmark
BISmark : the broadband internet service benchmark
 
ClearOS
ClearOSClearOS
ClearOS
 
Security and hacking Engineering
Security and hacking EngineeringSecurity and hacking Engineering
Security and hacking Engineering
 
Software libero at ENEA
Software libero at ENEASoftware libero at ENEA
Software libero at ENEA
 
Una nuova crittografia frattale: Crypt fna
Una nuova crittografia frattale: Crypt fnaUna nuova crittografia frattale: Crypt fna
Una nuova crittografia frattale: Crypt fna
 
ROS@Unina
ROS@Unina   ROS@Unina
ROS@Unina
 
Python@Unina - Exercises
Python@Unina - ExercisesPython@Unina - Exercises
Python@Unina - Exercises
 
Python@Unina - Theory
Python@Unina - TheoryPython@Unina - Theory
Python@Unina - Theory
 

Json Web Tokens

  • 1. A cura di Mario Rossano JWT: JSON Web Tokens LinuxDay Napoli 2017 Star Trek enthusiast CTO Netlogica – web and software engineering NaLUG member CPAN author Italian Perl Community member anak@cpan.org software@netlogica.it https://netlogica.it $ ./bye_bye_cookie_and_session > improved CyberSecurity and Scalability
  • 2. { "JWT": { "question1": "cos’è", "question2": "come è fatto?", "question3": "a cosa serve?", "question4": "è sicuro?", "declaration1": "vantaggi", "declaration2": "classi", "example": "case study" } } JWT: JSON Web TokensJWT: JSON Web Tokens LinuxDay Napoli 2017
  • 3. ● È uno standard (RFC 7519) per la trasmissione di informazioni ● Le informazioni sono impacchettate in formato JSON ● Implementa diversi algoritmi crittografici per la firma delle informazioni che trasporta ● Implementa internamente un MAC per la verifica delle informazioni trasmesse ● È self-contained ovvero trasporta in sé tutti i dati necessari per il suo utilizzo JWT: JSON Web Tokens /> cos’è?cos’è?JWT: JSON Web Tokens /> cos’è?cos’è?
  • 4. ● È formato da tre stringhe codificate in base64 qualitativamente differenti e separate dal punto “.” (ASCII 46) JWT: JSON Web Tokens /> come è fatto?come è fatto?JWT: JSON Web Tokens /> come è fatto?come è fatto?
  • 5. header è costituito da due parti ● typ: dichiarazione del tipo ● alg: algoritmo crittografico JWT: JSON Web Tokens /> come è fatto? >come è fatto? > headerheaderJWT: JSON Web Tokens /> come è fatto? >come è fatto? > headerheader { "typ": "JWT", "alg": “HS256” }
  • 6. payload contiene le informazioni da trasferire Ad es.: ● id: identificativo utente ● name: nome e cognome utente ● role: privilegio utente JWT: JSON Web Tokens /> come è fatto? >come è fatto? > payloadpayloadJWT: JSON Web Tokens /> come è fatto? >come è fatto? > payloadpayload { "id": "1234567", "name": “John Doe”, "role": “admin” }
  • 7. signature è la firma per la verifica dei dati Costruita mediante hash della concatenazione di header, payload con secret come sale crittografico (chiave segreta - stringa) var encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload); HMACSHA256(encodedString, 'secret'); JWT: JSON Web Tokens /> come è fatto? >come è fatto? > signaturesignatureJWT: JSON Web Tokens /> come è fatto? >come è fatto? > signaturesignature
  • 8. Il token completo è quindi del tipo seguente: JWT: JSON Web Tokens /> come è fatto? >come è fatto? > risultatorisultatoJWT: JSON Web Tokens /> come è fatto? >come è fatto? > risultatorisultato
  • 9. JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve? JWT è utilizzato per gestire l’autenticazione utente
  • 10. JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve? JWT è utilizzato per gestire l’autenticazione utente Ad esempio viene implementato da...
  • 11. JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve? ● HTTP è un protocollo stateless. Per "ricordare" che un utente è loggato si usano le sessioni ● Le sessioni sono costituite da un oggetto server-side (ad es. id utente) e da un cookie contenente ad es. l'id dell'oggetto server-side Prima di JWT… client → server
  • 12. JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve? ● Se il servizio esposto è più complesso e richiede server specializzati in ottica microservices il dualismo cookie- session non funziona: i server ignorano le sessioni degli altri. ● Allo stesso modo anche un sistema di bilanciamento del carico di un webserver canonico produce la stessa problematica Come si è risolto? Prima di JWT… client → multiple server
  • 13. JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve? ...come si è risolto? ● Interponendo un proxy che gestisce le transazioni e provvede a uniformare le sessioni ● Risolto? Si, ma con incremento di complessità e perdita di scalabilità C’è di meglio? Prima di JWT… client → multiple server
  • 14. JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve? ...come si è risolto? ● Interponendo un proxy che gestisce le transazioni e provvede a uniformare le sessioni ● Risolto? Si, ma con incremento di complessità e perdita di scalabilità C’è di meglio? Si! Prima di JWT… client → multiple server
  • 15. JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve? ● Il server verifica le credenziali al login e rilascia il token ● l’utente memorizza il token localmente ● Il client, per tutte le successive richieste all’infrastruttura servente, invierà il token che sarà verificato ad ogni richiesta Con JWT… client → single/multiple server
  • 16. JWT: JSON Web Tokens /> a cosa serve?a cosa serve?JWT: JSON Web Tokens /> a cosa serve?a cosa serve? Con JWT… client → login on multiplatform
  • 17. JWT: JSON Web Tokens /> è sicuro?è sicuro?JWT: JSON Web Tokens /> è sicuro?è sicuro? Si! Se applicato nel modo corretto. ● E’ consigliabile trasferire JWT tramite HTTPS ● La signature può essere effettuata anche con RSARSA, separando quindi chiave pubblica dalla privata ● Inoltre JWT assicura la veridicità della chiamata mediante MAC Message Authentication Code
  • 18. JWT: JSON Web Tokens /> è sicuro? MACè sicuro? MACJWT: JSON Web Tokens /> è sicuro? MACè sicuro? MAC Flusso di un MAC
  • 19. JWT: JSON Web Tokens /> vantaggivantaggiJWT: JSON Web Tokens /> vantaggivantaggi ● Stateless: non occorre gestire session. Ottimale per applicazioni RESTful ● Portabile: un solo token può essere riutilizzato su differenti backend, domini, applicazioni ● Cookieless: sul client il token può essere salvato dove si vuole: localStorage, indexDB o anche cookie(?!) :O (ndr. non lo farete vero?) ● Mobile friendly: implementabile ovunque, su web, su app native (per cui la gestione cookie avrebbe richiesto uno sforzo aggiuntivo) ● Built-in Expiration: dichiarando il claim exp nell’header ● CORS friendly: Cross-Origin Resource Sharing ● Decentralizzato: il token può essere generato ovunque ● Performance: cercare sessioni nel db ed estrarre le informazioni è dispendioso rispetto al calcolo di un HMACSHA256 ● Standard: le specifiche RFC7519 sono state implementate in numerosi ambienti
  • 20. JWT: JSON Web Tokens /> classiclassiJWT: JSON Web Tokens /> classiclassi .NET Node.js Java PHP Python Javascript Perl Ruby Haskell Swift Objective-C C Lista aggiornata su: Haskell https://jwt.io/
  • 21. JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study Programma il Futuro è il progetto del CINI e del MIUR in collaborazione con Code.org per la diffusione del pensiero computazionale in Italia.
  • 22. JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study Programma il Futuro è il progetto del CINI e del MIUR in collaborazione con Code.org per la diffusione del pensiero computazionale in Italia. Nell’anno scolastico 2016/17 sono stati coinvolti 1’600’000 studenti
  • 23. JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study Programma il Futuro è il progetto del CINI e del MIUR in collaborazione con Code.org per la diffusione del pensiero computazionale in Italia. Nell’anno scolastico 2016/17 sono stati coinvolti 1’600’000 studenti TIM in qualità di partner del progetto ha fornito a Programma il Futuro la sua piattaforma di crowdfunding per sostenere le attività nel triennio 2017/20
  • 24. JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study Programma il Futuro è il progetto del CINI e del MIUR in collaborazione con Code.org per la diffusione del pensiero computazionale in Italia. Nell’anno scolastico 2016/17 sono stati coinvolti 1’600’000 studenti TIM in qualità di partner del progetto ha fornito a Programma il Futuro la sua piattaforma di crowdfunding per sostenere le attività nel triennio 2017/20 Occorreva quindi un metodo sicuro e verificato per comunicare i dati dei donatori dalla piattaforma di crowdfunding a PIF per eseguire alcune operazioni a valle. Come?
  • 25. JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study Programma il Futuro è il progetto del CINI e del MIUR in collaborazione con Code.org per la diffusione del pensiero computazionale in Italia. Nell’anno scolastico 2016/17 sono stati coinvolti 1’600’000 studenti TIM in qualità di partner del progetto ha fornito a Programma il Futuro la sua piattaforma di crowdfunding per sostenere le attività nel triennio 2017/20 Occorreva quindi un metodo sicuro e verificato per comunicare i dati dei donatori dalla piattaforma di crowdfunding a PIF per eseguire alcune operazioni a valle. Come?
  • 26. JWT: JSON Web Tokens /> case studycase studyJWT: JSON Web Tokens /> case studycase study
  • 27. JWT: JSON Web Tokens /> Riferimenti JWTRiferimenti JWTJWT: JSON Web Tokens /> Riferimenti JWTRiferimenti JWT ● Specifiche JWT → RFC7119 https://tools.ietf.org/html/rfc7519 ● Debugger e classi → https://jwt.io/ LinuxDay Napoli 2017
  • 28. JWT: JSON Web Tokens /> Riferimenti autoreRiferimenti autoreJWT: JSON Web Tokens /> Riferimenti autoreRiferimenti autore Mario Rossano aka Anak ● Web: https://netlogica.it ● Facebook: https://facebook.com/netlogica ● Twitter: https://twitter.com/Mario_Rossano ● MetaCPAN: https://metacpan.org/author/ANAK ● SlideShare: https://www.slideshare.net/Anakthewolf LinuxDay Napoli 2017
  • 29. JWT: JSON Web Tokens /> exitexitJWT: JSON Web Tokens /> exitexit Grazie a Voi per l’attenzione al NaLUG per l’organizzazione ed alla Federico II per la consueta ospitalità :-) LinuxDay Napoli 2017