Johdanto JWT:hen: JSON Web Token (JWT) on avoin standardi (RFC 7519), joka määrittelee kompaktin ja itsenäisen tavan turvallisesti siirtää tietoa osapuolten välillä JSON-objekteissa. Tämä tieto voidaan varmistaa ja luottaa digitaalisten allekirjoitusten avulla. JWT:t voidaan allekirjoittaa salaisuuksien avulla (HMAC-algoritmilla) tai RSA:n julkisen/yksityisen avainparin avulla.
Joihinkin tilanteisiin, joissa JSON Web Tokenit ovat hyödyllisiä:
Henkilöllisyyden varmistus:Tämä on yleisin tapaus, jossa JWT:t käytetään. Kun käyttäjä kirjautuu sisään, jokainen seuraava pyyntö sisältää JWT:n, joka mahdollistaa käyttäjän pääsyn kyseisen tokenin sallimiin reitteihin, palveluihin ja resursseihin. Kertakirjautuminen on nykyään laajasti käytetty ominaisuus, koska sen ylikuormitus on pieni ja sen käyttö on helppoa eri domaineilla.
Tiedonvaihto:JSON Web Tokenit ovat erinomainen tapa siirtää tietoja turvallisesti osapuolten välillä. Koska JWT:t voidaan allekirjoittaa – esimerkiksi julkisen ja yksityisen avaimen pareilla, on mahdollista olla varma, että lähettäjä on se, kuka hän väittää olevansa. Lisäksi, koska allekirjoitus lasketaan otsikoiden ja hyötykuormien avulla, voit myös varmistaa, ettei sisältöä ole manipuloitu.
Virallinen verkkosivusto:Hyperlinkin kirjautuminen on näkyvissä.
Jäsentele JWT-tietoa verkossa:Hyperlinkin kirjautuminen on näkyvissä.
Analysoi JWT-parametreja verkossa Hyperlinkin kirjautuminen on näkyvissä.
Ymmärrykseni JWT:stä alla on väärä, antakaa minulle neuvoja
Ensinnäkin, tätä ei suositella käyttämään sitä MVC:n verkkosivuilla, voit käyttää sitä webapi:ssa, ja sen sijoittelu on API, ei korvaavan sivuston istunto!
asp.net WebAPI:n käyttöohje:Hyperlinkin kirjautuminen on näkyvissä.En aio tehdä pyörää uudestaan, tämän artikkelin katsominen on ihan ok.
JWT:n kokoonpano
JWT koostuu kolmesta osasta: Otsikko, Hyötykuorma ja Allekirjoitus, joiden välissä on pistesymbolit muodostaen muodon xx.yy.zz.
Huomaa, että allekirjoitettujen tokenien kohdalla tätä tietoa voi lukea kuka tahansa, huolimatta manipulointisuojasta. Älä sijoita arkaluonteisia tietoja JWT:n kelvollisiin sisältöihin tai otsikkoelementteihin, ellei ne ole salattuja.
Esimerkiksi:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [allekirjoitus] Yksinkertaisesti sanottuna kuka tahansa voi purkaa tämän tokenin, mutta tiedon aitoutta ei voida varmistaa; vain tokenin luonut palvelin voi varmistaa aitouden, joten arkaluonteisia tietoja ei tallenneta siihen.
Tässä on ongelma: jos käyttäjä vaihtaa salasanan tai käyttäjää kielletään kirjautumasta sisään, miten JWT voi ratkaista tokenin voimassaolon?
Oma ideani on lisätä guid-tyyppinen merkkijono Payload-osioon, ja sitten olla olemassa välimuistissa, kun varmistetaan käyttäjän henkilöllisyys, ei ainoastaan jwt:tä, vaan myös Payload-tietoja jwt:ssä, ja voimme hallita pätevyyttä ohjaamalla välimuistia.
|