hur JSON Web Token(JWT) autentisering fungerar?

Header

JWT header består av token typ och algoritm som används för signering och kodning. Algoritmer kan vara HMAC, SHA256, RSA, HS256 eller RS256.

{ 
"typ": "JWT",
"alg": "HS256"
}

nyttolast

nyttolast består av sessionsdata som kallas som fordringar. Nedan följer några av de standardkrav som vi kan använda,

  1. Emittent(ISS)
  2. ämne (sub)
  3. publik (aud)
  4. utgångstid (exp)
  5. utfärdad vid (iat)
{
"sub": "user10001",
"iat": 1569302116
}

anpassade anspråk kan också inkluderas i anspråk. När du använder anpassade anspråk,

  • lägg inte stora data i anspråk. Anspråk som är avsedda att vara kompakta.
  • lägg inte känslig information eftersom JWT enkelt kan avkodas.
{
"sub": "user10001",
"iat": 1569302116,
"role": "admin",
"user_id": "user10001"
}

signatur

signatur är den viktigaste delen av en JSON Web Token(JWT). Signaturen beräknas genom att koda rubriken och nyttolasten med Base64url-kodning och sammanfoga dem med en periodseparator. Som sedan ges till den kryptografiska algoritmen.

// signature algorithm
data = base64urlEncode( header ) + "." + base64urlEncode( payload )signature = HMAC-SHA256( data, secret_salt )

så när rubriken eller nyttolasten ändras måste signaturen beräknas igen. Endast identitetsleverantören (IdP) har den privata nyckeln för att beräkna signaturen som förhindrar manipulering av token.

hur fungerar det?

i grund och botten genererar identitetsleverantören(IdP) en JWT-certifierande användaridentitet och Resursserver avkodar och verifierar äktheten hos token med hemlig salt / offentlig nyckel.

  1. Användarinloggning med användarnamn och lösenord eller google/facebook.
  2. autentiseringsserver verifierar autentiseringsuppgifterna och utfärdar en JWT signerad med antingen ett hemligt salt eller en privat nyckel.
  3. användarens klient använder JWT för att komma åt skyddade resurser genom att skicka JWT i HTTP-Auktoriseringshuvudet.
  4. Resursserver verifierar sedan äktheten av token med den hemliga salt / offentliga nyckeln.

Lämna ett svar

Din e-postadress kommer inte publiceras.

More: