En JSON Web Token (JWT) är en öppen standard för att säkert överföra information mellan parter som ett JSON-objekt. Det används ofta för att autentisera användare och säkert överföra information mellan en klient och en server.
När en användare loggar in skapar servern en JWT, som består av tre delar: en header, en payload och en signatur.
Headern består vanligtvis av typen av token och den kryptografiska algoritmen som används för att säkra den. Headern är sedan Base64Url-kodad.
Payloaden innehåller anspråk, som är uttalanden om användaren och ytterligare data. Anspråk kan inkludera information som användarens ID, användarnamn, roll och annan relevant information. Payloaden är också Base64Url-kodad.
Signaturen skapas genom att koda headern, payloaden och en hemlig nyckel med hjälp av algoritmen som anges i headern. Detta säkerställer tokenens integritet och gör det möjligt för servern att verifiera dess äkthet. Signaturen läggs till den kodade headern och payloaden för att bilda hela JWT.
När JWT har skapats skickas den till klienten, som lagrar den och skickar den tillsammans med efterföljande förfrågningar. Klienten inkluderar typiskt JWT i Authorization
-headern av HTTP-förfrågan som en Bearer-token.
Vid mottagande av JWT verifierar servern dess signatur med hjälp av den hemliga nyckeln. Om signaturen är giltig kan servern avkoda informationen i headern och payloaden för att utföra användarauktorisering. Servern kan lita på informationen i JWT utan att behöva fråga en databas eller utföra ytterligare auktoriseringskontroller. Detta gör JWTs till en effektiv och skalbar autentiseringsmekanism.
Tokenautentisering är en metod där en åtkomsttoken används för att komma åt resurser istället för att använda ett användarnamn och lösenord. Tokenet utfärdas typiskt av en autentiseringsserver och skickas med varje förfrågan som bevis på autentisering. Token-baserad autentisering erbjuder flera fördelar jämfört med traditionell användarnamn och lösenord autentisering:
OAuth 2.0 är en öppen standard och auktoriseringsramverk som möjliggör att en tredjepartsapplikation kan få begränsad åtkomst till en användares resurser. Det används ofta för att tillåta användare att ge behörigheter till externa applikationer för att få tillgång till deras data på tredjepartsplattformar. OAuth 2.0 förlitar sig på JSON Web Tokens (JWTs) för autentisering och auktorisering.
OAuth 2.0 involverar flera parter, såsom resursägaren (användaren som äger resurserna), klienten (tredjepartsapplikationen), auktoriseringsservern (ansvarig för att utfärda åtkomsttokens) och resursservern (innehåller de skyddade resurserna).
Under OAuth 2.0-flödet får klienten en auktorisationsgrant från resursägaren. Klienten byter sedan detta grant mot ett åtkomsttoken från auktoriseringsservern. Åtkomsttokenet är en JWT som innehåller nödvändig information för att få tillgång till de skyddade resurserna på resursservern. Denna token används sedan av klienten för att komma åt användarens resurser.
Genom att använda OAuth 2.0 och JWTs kan applikationer tillhandahålla säker och kontrollerad åtkomst till användardata på en mängd olika plattformar.