Dekoder JWT
Prilepite JSON Web Token in preberite njegovo glavo in vsebino (payload) kot oblikovan JSON. Časa poteka in izdaje sta prikazana kot datuma, ob tem pa izveste, ali je žeton trenutno veljaven. Dekodiranje poteka v celoti v vašem brskalniku, kar je pomembno, kadar je žeton aktivna poverilnica.
0 znakov · 0 besed · 0 vrstic
0 znakov · 0 besed · 0 vrstic
Deluje povsem v tem zavihku brskalnika. Vaše besedilo se nikoli ne naloži in ne shrani.
Registrirane trditve
Sedem imen trditev, opredeljenih v RFC 7519 §4.1. Vse so neobvezne; časi so sekunde od 1970-01-01 UTC.
| Trditev | Pomen |
|---|---|
iss | Izdajatelj: kdo je ustvaril in podpisal žeton |
sub | Subjekt: uporabnik ali entiteta, na katero se žeton nanaša |
aud | Občinstvo: komu je žeton namenjen |
exp | Čas poteka: žeton po tem trenutku zavrnite |
nbf | Ne velja pred: žeton pred tem trenutkom zavrnite |
iat | Izdano: kdaj je bil žeton ustvarjen |
jti | ID JWT: enolični identifikator, za preprečevanje ponovne uporabe |
Pogoste vrednosti alg
| Vrednost alg | Pomen |
|---|---|
HS256 | HMAC s SHA-256; ena skupna skrivnost podpisuje in preverja |
RS256 | Podpis RSA PKCS#1 v1.5 s SHA-256; zasebni ključ podpisuje, javni preverja |
PS256 | RSA-PSS s SHA-256 |
ES256 | ECDSA na krivulji P-256 s SHA-256; kratki podpisi |
EdDSA | Podpisi Ed25519 ali Ed448 |
none | Nepodpisan žeton; strežniki bi ga morali zavrniti |
Kaj vsebuje JSON Web Token
JWT je opredeljen v RFC 7519 (maj 2015), ki predlaga izgovorjavo kot angleška beseda »jot«. Običajna podpisana oblika so trije nizi Base64url, ločeni s pikami: header.payload.signature. Glava (header) v polju alg navaja algoritem podpisovanja, na primer HS256 ali RS256, pogosto pa tudi ID ključa v kid. Vsebina (payload) vsebuje trditve (claims), torej polja JSON, kot so sub (uporabnik), iss (izdajatelj), aud (predvideno občinstvo) ter exp, nbf in iat, ki so časi v sekundah od 1. januarja 1970 UTC. Dekodirnik te tri vrednosti pretvori v vaš lokalni čas in ISO 8601 ter pove, ali je žeton potekel, še ni veljaven ali je znotraj obdobja veljavnosti.
Base64url je kodiranje, ne šifriranje, zato lahko vsakdo, ki ima žeton, prebere njegovo vsebino natanko tako kot ta stran. V trditve nikoli ne vstavljajte gesel, številk kartic ali drugih skrivnosti. Žeton s petimi deli, ločenimi s pikami, je JWE, šifriran žeton; brez ključa njegove vsebine ni mogoče prebrati, dekodirnik pa to tudi sporoči. Začetni »Bearer «, kopiran iz glave Authorization, se samodejno odstrani.
Zakaj se podpis tukaj ne preverja
Podpis dokazuje, da je glavo in vsebino ustvaril nekdo, ki ima ključ, ter da se od takrat nista spremenili. Za preverjanje potrebujete ta ključ: skupno skrivnost za algoritme HMAC, kot je HS256, ali javni ključ izdajatelja za RS256, ES256 ali EdDSA. Lepljenje produkcijske skrivnosti za podpisovanje na katero koli spletno stran je slaba zzamisel, dekodirnik, ki bi brez ključa zagotavljal za pristnost žetona, pa bi dajal lažno varnost, zato to orodje podpis prikaže, a ga ne preverja. Videno obravnavajte kot trditev, ki jo poda žeton, ne kot dejstvo.
Preverjanje sodi na vaš strežnik, z vzdrževano knjižnico in določenim pričakovanim algoritmom. Zakaj, pojasnita dve zgodovinski napaki: sprejemanje alg »none«, ki komurkoli omogoča ponarejanje nepodpisanega žetona, in zamenjava algoritma, pri kateri strežnik, ki pričakuje RS256, preslepijo, da preveri podpis HS256 z javnim ključem kot skrivnostjo HMAC. Dekodirnik je namenjen odpravljanju napak: ogledu trditev, ki jih izdaja ponudnik, odkrivanju napačnega občinstva ali ugotovitvi, da je seja spodletela, ker je exp potekel pred minuto. Za surov ogled segmentov Base64url uporabite dekodirnik Base64.
Pogosto zastavljena vprašanja
- Ali je varno prilepiti pravi dostopni žeton v dekoder JWT?
- Na tej strani žeton nikoli ne zapusti vašega brskalnika. Kljub temu veljaven žeton do izteka deluje kot geslo, zato raje uporabljajte potekle ali testne žetone, delujočih pa ne puščajte na posnetkih zaslona in v klepetih.
- Zakaj je moj žeton prikazan kot potekel, čeprav je bil pravkar izdan?
- Najprej preverite uro na napravi. Nekateri izdajatelji dostopnim žetonom določijo življenjsko dobo le nekaj minut, žeton, kopiran iz dnevnika, pa je lahko starejši, kot izgleda. Če je exp zapisan v milisekundah namesto v sekundah, je ravno obratno in pristane tisoče let v prihodnosti.
- Ali lahko kdo spremeni vsebino mojega JWT?
- Lahko ga urejajo in znova kodirajo, vendar se podpis ne bo več ujemal. Strežnik, ki preverja podpise z ustreznim ključem in algoritmom, spremenjen žeton zavrne.
- Kakšna je razlika med JWS in JWE?
- JWS (RFC 7515) je podpisan, ima tri dele in ga lahko prebere vsak. JWE (RFC 7516) je šifriran, ima pet delov in vsebino lahko prebere le imetnik ključa.
- Ali odjava razveljavi JWT?
- Samo po sebi ne. Podpisan JWT ostane veljaven do exp, razen če strežnik vodi seznam zavrnjenih žetonov ali preverja zapis seje, zato imajo dostopni žetoni običajno kratko življenjsko dobo.