JSON Web Token
JSON Web Token (lyhenne JWT) on JSON-pohjainen avoimen standardin (RCF 7519) menetelmä käyttöoikeustietueiden (Access Token) hallinnoimiseen eri ohjelmistojen välillä. Yleisin käyttökohde lienee esimerkiksi käyttäjän varmentaminen, eli onko käyttäjällä varmasti oikeus haluttuun kohteeseen. JSON Web Tokenin edut ovat sen keveydessä, siinä, että osa tarvittavasta datasta löytyy itse tietueesta (ei välttämättä tarvitse hakea esimerkiksi istunnon (käyttäjän) tietoja tietokannasta joka pyynnöllä) ja kyvyssä soveltua monelle ohjelmistoalustalle.
JSON Web Token itsessään on merkkijono, joka koostuu kolmesta osasta: otsikko (header), sisältö/väitteet (payload/claims) ja kolmantena salaisesta osasta, ja muusta sisällöstä (edellä mainitut) yhteensä muodostamasta tiivisteestä. Nämä tiedot erotetaan toisistaan pisteellä ja muutetaan base64-muotoon.
Pyyntöä tehtäessä palvelin varmentaa omalla salaisella avaimellaan (jolla käyttöoikeustietue myös alun perin luotiin) ja käyttöoikeustieteen muiden tietojen pohjalta, onko käyttöoikeustietue kunnollinen, eli voidaanko pyynnön katsoa olevan turvallinen.
Esimerkki JSON Web Tokenista, jonka salainen osa on secret
ja sisältönä wikipedia: "1234"
, sekä muutamia otsikkotietoja.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ3aWtpcGVkaWEiOiIxMjM0In0.jk2o0hIXHbkQ0uUJKY4jSiBzlDYubTZYkZi7SrSeZSM
Aiheesta lisää
- Video: How does JWT work (kesto 1:06): https://www.youtube.com/watch?v=K6pwjJ5h0Gg