JSON Web Token (JWT) on avoin standardi, joka mahdollistaa turvallisen tiedon välittämisen osapuolten välillä JSON-objektina. Sitä käytetään usein käyttäjien todentamiseen ja tiedon turvalliseen välittämiseen asiakkaan ja palvelimen välillä.
Kun käyttäjä kirjautuu sisään, palvelin luo JWT:n, joka koostuu kolmesta osasta: otsikko, hyötykuorma ja allekirjoitus.
Otsikko sisältää tyypillisesti tokenin tyypin ja salausalgoritmin, jota käytetään sen suojaamiseen. Otsikko muunnetaan sitten Base64Url-koodatuksi.
Hyötykuorma sisältää väitteet, jotka ovat käyttäjästä ja lisätiedoista annettuja lausumia. Väitteet voivat sisältää tietoja, kuten käyttäjän ID, käyttäjänimi, rooli ja muita olennaisia tietoja. Hyötykuorma koodataan myös Base64Url-muotoon.
Allekirjoitus luodaan koodaamalla otsikko, hyötykuorma ja salainen avain käyttäen otsikossa määriteltyä algoritmia. Tämä varmistaa tokenin eheyttä ja mahdollistaa palvelimen tarkistaa sen aitouden. Allekirjoitus liitetään koodattuun otsikkoon ja hyötykuormaan, jolloin muodostuu täydellinen JWT.
Kun JWT on luotu, se lähetetään asiakkaalle, joka tallentaa sen ja lähettää sen yhdessä myöhempien pyyntöjen kanssa. Asiakas sisällyttää yleensä JWT:n Authorization
-otsikkoon HTTP-pyynnössä Bearer-tokenina.
JWT:n vastaanotettuaan palvelin varmistaa sen allekirjoituksen salaisen avaimen avulla. Jos allekirjoitus on pätevä, palvelin voi purkaa tiedot otsikossa ja hyötykuormassa käyttäjän todentamiseksi. Palvelin voi luottaa JWT:ssä olevaan tietoon ilman, että sen tarvitsee kysyä tietoja tietokannasta tai suorittaa lisätarkastuksia. Tämä tekee JWT:stä tehokkaan ja skaalautuvan autentikointimekanismin.
Tunnistautuminen tokenien avulla on menetelmä, jossa käytetään pääsytokenia resurssien käyttöön käyttäjätunnuksen ja salasanan sijaan. Tokenin yleensä myöntää tunnistautumispalvelin ja se toimitetaan jokaiseen pyyntöön todisteena tunnistautumisesta. Token-pohjainen tunnistautuminen tarjoaa useita etuja perinteiseen käyttäjätunnus- ja salasana-tunnistautumiseen verrattuna:
OAuth 2.0 on avoin standardi ja valtuutuskehys, joka mahdollistaa kolmannen osapuolen sovellukselle rajoitetun pääsyn käyttäjän resursseihin. Sitä käytetään yleisesti, jotta käyttäjät voivat antaa ulkopuolisille sovelluksille luvan käyttää tietojaan kolmannen osapuolen alustoilla. OAuth 2.0 hyödyntää JSON Web Tokeneita (JWT) tunnistautumiseen ja valtuutukseen.
OAuth 2.0:ssa on useita osapuolia, kuten resurssin omistaja (käyttäjä, joka omistaa resurssit), asiakas (kolmannen osapuolen sovellus), valtuutuspalvelin (vastaa pääsytokenien myöntämisestä) ja resurssipalvelin (pitää suojattuja resursseja).
OAuth 2.0 -prosessin aikana asiakas saa valtuutusluvan resurssin omistajalta. Asiakas vaihtaa tämän luvan valtuutuspalvelimelta saadakseen pääsytokenin. Pääsytoken on JWT, joka sisältää tarvittavat tiedot suojattujen resurssien käyttöön resurssipalvelimella. Tätä tokenia käyttää asiakas päästäkseen käyttäjän resursseihin.
Käyttämällä OAuth 2.0:aa ja JWT:itä, sovellukset voivat tarjota turvallisen ja hallitun pääsyn käyttäjän tietoihin laajalla valikoimalla alustoja.