En JSON Web Token (JWT) er en åpen standard for sikker overføring av informasjon mellom parter som et JSON-objekt. Den brukes ofte til å autentisere brukere og sikkert overføre informasjon mellom en klient og en server.
Når en bruker logger inn, oppretter serveren en JWT, som består av tre deler: en header, en payload og en signatur.
Headeren består vanligvis av typen token og den kryptografiske algoritmen som brukes for å sikre den. Headeren kodes deretter med Base64Url.
Payloaden inneholder kravene, som er uttalelser om brukeren og tilleggsdata. Krav kan inkludere informasjon som brukerens ID, brukernavn, rolle og annen relevant data. Payloaden er også Base64Url-kodet.
Signaturen opprettes ved å kode header, payload, og en hemmelig nøkkel ved hjelp av algoritmen spesifisert i headeren. Dette sikrer integriteten til tokenet og gjør det mulig for serveren å verifisere dets ekthet. Signaturen legges til den kodede headeren og payloaden for å danne den komplette JWT-en.
Når JWT-en er opprettet, sendes den til klienten, som lagrer den og sender den sammen med påfølgende forespørsler. Klienten inkluderer vanligvis JWT-en i Authorization
-headeren til HTTP-forespørselen som en Bearer-token.
Ved mottak av JWT-en, verifiserer serveren dens signatur ved hjelp av den hemmelige nøkkelen. Hvis signaturen er gyldig, kan serveren dekode informasjonen i headeren og payloaden for å utføre brukerautentisering. Serveren kan stole på informasjonen i JWT-en uten å måtte gjøre oppslag i en database eller utføre ekstra autentiseringskontroller. Dette gjør JWT-er til en effektiv og skalerbar autentiseringsmekanisme.
Token autentisering er en metode for autentisering der en tilgangstoken brukes for å få tilgang til ressurser i stedet for å bruke brukernavn og passord. Tokenet utstedes vanligvis av en autentiseringsserver og gis med hver forespørsel som bevis på autentisering. Token-basert autentisering tilbyr flere fordeler over tradisjonell brukernavn og passord autentisering:
OAuth 2.0 er en åpen standard og autorisasjonsrammeverk som gjør det mulig for en tredjepartsapplikasjon å få begrenset tilgang til en brukers ressurser. Det brukes ofte for å tillate brukere å gi tillatelser til eksterne applikasjoner for å få tilgang til deres data på tredjepartsplattformer. OAuth 2.0 bygger på JSON Web Tokens (JWT-er) for autentisering og autorisasjon.
OAuth 2.0 involverer flere parter, som ressurseieren (brukeren som eier ressursene), klienten (tredjepartsapplikasjonen), autorisasjonsserveren (ansvarlig for å utstede tilgangstokens), og ressursserveren (holder de beskyttede ressursene).
Under OAuth 2.0-flyten, får klienten en autorisasjonsbevilgning fra ressurseieren. Klienten bytter deretter denne bevilgningen med autorisasjonsserveren for en tilgangstoken. Tilgangstokenet er en JWT som inneholder nødvendig informasjon for å få tilgang til de beskyttede ressursene på ressursserveren. Dette tokenet brukes deretter av klienten for å få tilgang til brukerens ressurser.
Ved å bruke OAuth 2.0 og JWT-er, kan applikasjoner tilby sikker og kontrollert tilgang til brukerdata på et bredt spekter av plattformer.