hogyan működik a JSON Web Token (JWT) hitelesítés?

Header

a JWT header az aláíráshoz és kódoláshoz használt token típusból és algoritmusból áll. Az algoritmusok lehetnek HMAC, SHA256, RSA, HS256 vagy RS256.

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

hasznos teher

a hasznos teher az igényként hívott munkamenet-adatokból áll. Az alábbiakban felsorolunk néhány a standard állítások, hogy tudjuk használni,

  1. kibocsátó(ISS)
  2. tárgy (Al)
  3. közönség (aud)
  4. lejárati idő (exp)
  5. kibocsátva (iat)
{
"sub": "user10001",
"iat": 1569302116
}

az egyéni igények is szerepelhetnek a követeléskészletben. Egyéni követeléskészletek használata esetén,

  • ne tegyen nagy adatokat a követeléskészletekbe. Követelés készletek azt jelentette, hogy kompakt.
  • ne tegyen érzékeny információkat, mivel a JWT könnyen dekódolható.
{
"sub": "user10001",
"iat": 1569302116,
"role": "admin",
"user_id": "user10001"
}

aláírás

az aláírás a JSON Web Token(JWT) legfontosabb része. Az aláírást a fejléc és a hasznos adat Base64url kódolással történő kódolásával számítják ki, majd egy pontelválasztóval összefűzik őket. Amelyet ezután a kriptográfiai algoritmusnak adnak.

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

tehát amikor a fejléc vagy a hasznos teher megváltozik, az aláírást újra ki kell számítani. Csak az identitásszolgáltató (IdP) rendelkezik a privát kulccsal az aláírás kiszámításához, amely megakadályozza a token manipulálását.

hogyan működik?

alapvetően az identitásszolgáltató (IdP) generál egy JWT-t, amely tanúsítja a felhasználói identitást, és az erőforrás-kiszolgáló dekódolja és ellenőrzi a token hitelességét titkos salt / nyilvános kulcs segítségével.

  1. felhasználói bejelentkezés felhasználónév és jelszó vagy google/facebook használatával.
  2. az Authentication server ellenőrzi a hitelesítő adatokat, és titkos salt vagy privát kulcs használatával aláírja a jwt-t.
  3. a felhasználó kliense a JWT-t használja a védett erőforrások eléréséhez a JWT HTTP engedélyezési fejlécben történő átadásával.
  4. Resource server ezután ellenőrzi a token hitelességét a titkos salt/ nyilvános kulcs segítségével.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

More: