Bevezetés a JWT-be: A JSON Web Token (JWT) egy nyílt szabvány (RFC 7519), amely kompakt és önálló módot határoz meg az információk biztonságos továbbítására a felek között a JSON objektumokban. Ez az információ digitális aláírásokkal ellenőrizhető és megbízható. A JWT-k aláírhatók titkos eszközökkel (a HMAC algoritmussal), vagy az RSA nyílos/privát kulcspárjaival.
Néhány helyzet, ahol a JSON Web tokenek hasznosak:
Személyazonosság ellenőrzése:Ez a leggyakoribb eset a JWT-k használatára. Miután a felhasználó bejelentkezik, minden következő kérés tartalmaz egy JWT-t, amely lehetővé teszi a felhasználó számára, hogy hozzáférjen az adott token által engedélyezett útvonalakhoz, szolgáltatásokhoz és erőforrásokhoz. Az egyszeri bejelentkezés ma is széles körben használatos, alacsony túlterhelése és könnyen használható különböző domainek között.
Információcsere:A JSON Web tokenek nagyszerű módot kínálnak az információk biztonságos átadására a felek között. Mivel a JWT-k aláírhatók – például nyilvános/privát kulcspárok használatával –, biztosak lehetünk benne, hogy a feladó az, akinek állítja magát. Ezen túl, mivel az aláírást fejlécek és hasznos terhek alapján számítják ki, ellenőrizheted, hogy a tartalommal nem manipuláltak-e.
Hivatalos weboldal:A hiperlink bejelentkezés látható.
Elemezd a JWT információkat online:A hiperlink bejelentkezés látható.
Elemezd a JWT paramétereket online A hiperlink bejelentkezés látható.
Az alábbi JWT-ről alkotott értelmezésem téves, kérlek, adj tanácsot
Először is, ezt a készüléket nem ajánlják használni az MVC weboldalán, webapiban is használhatod, a pozíciója API, nem a helyettesítő weboldal egy játékmenete!
asp.net webAPI használati útmutató:A hiperlink bejelentkezés látható.Nem fogom újraalkotni a kereket, nézni, mit ír ez a cikk, az nem gond.
A JWT összetétele
A JWT három részből áll: fejléc, hasznos teher és aláírás, közte pontok jelennek meg, így xx.yy.zz formát alkotnak.
Fontos megjegyezni, hogy az aláírt tokenek esetében ezeket az információkat bárki olvashatja, annak ellenére, hogy a manipuláció védelme van. Ne helyezzen érzékeny információkat a JWT érvényes tartalmai vagy fejléci elemeibe, hacsak nem titkosítva.
Például:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
alg: "HS256",
typ: "JWT" }.
{
sub: "1234567890",
name: "John Doe",
iat: 1516239022 }. [aláírás] Egyszerű kifejezéssel, bárki dekódolhatja ezt a tokent, de az információ hitelessége nem ellenőrizhető, csak az a szerver, amely létrehozta ezt a tokent, tudja ellenőrizni az eredetit, ezért ne tárolj benne érzékeny információkat.
Itt van egy probléma, vagyis ha a felhasználó megváltoztatja a jelszót, vagy megtiltják a bejelentkezést, hogyan oldhatja meg a JWT a token érvényességét?
Az én ötletem, hogy hozzáadok egy irányító-szerű stringet a Payload szekcióban, majd a gyorsítótárban is létezni, amikor a felhasználó személyazonosságát ellenőrzik, nemcsak a jwt-t ellenőrizzük, hanem a Payload adatait is ellenőrizzük a jwt-ben, így az érvényességet a cache vezérlésével tudjuk szabályozni.
|