Generator JWT
Ustvarite podpisan spletni žeton JSON z lastnimi zahtevki JSON. Izberite HS256, HS384 ali HS512 s skupno skrivnostjo, RS256 do PS512 z zasebnim ključem RSA, ES256 do ES512 z ustreznim ključem EC ali EdDSA s ključem Ed25519, podanim v obliki PEM ali JWK. Generator lahko doda glavi iat, exp in kid, podpiše z knjižnico jose ter prikaže strnjeni žeton ob dekodirani glavi in vsebini.
Pogosta vprašanja
Katere algoritme za podpisovanje lahko uporabim?
Generator podpira HS256, HS384 in HS512 s skupno skrivnostjo, RS256, RS384, RS512, PS256, PS384 in PS512 z zasebnim ključem RSA, ES256, ES384 in ES512 z zasebnim ključem EC na krivulji P-256, P-384 ali P-521 ter EdDSA z zasebnim ključem Ed25519. Izbrani algoritem se zapiše v glavo alg, typ pa je vedno nastavljen na JWT.
Kaj naj vnesem kot vsebino?
Vnesite objekt JSON s svojimi zahtevki, na primer sub, name, iss, aud ali poljubnim članom po meri. Polja, nizi in druge vrednosti, ki niso objekt, so zavrnjeni, ker mora biti vsebina JWT objekt JSON. Vrstni red zahtevkov in njihove vrednosti ostanejo natanko takšni, kot ste jih zapisali.
Kako se obravnava skrivnost HMAC?
Pri HS256, HS384 in HS512 se skrivnost uporabi kot besedilo UTF-8, potem ko se odstranijo začetni in končni presledki. Če je vaša skrivnost binarna, jo prilepite kot JWK, na primer {"kty": "oct", "k": "..."}, pri čemer bajte podajte v base64url; namesto tega se uporabijo dekodirani bajti. Ključi PEM za algoritme HMAC niso sprejeti, saj je uporaba javnega ključa kot skrivnosti HMAC pogosta napaka.
Kako dolga naj bo skrivnost HS256?
RFC 7518 zahteva ključ, ki je vsaj tako dolg kot izhod zgoščevalne funkcije: 32 bajtov za HS256, 48 za HS384 in 64 za HS512. Orodje podpisuje tudi s krajšimi skrivnostmi, da lahko ponovite testne žetone, vendar naj bodo skrivnosti za produkcijo dolge naključne vrednosti, na primer tiste, ki jih ustvari Generator gesel.
Katere oblike zasebnih ključev za RSA, EC in EdDSA so sprejete?
Prilepite nešifriran zasebni ključ PEM v obliki PKCS #8 (BEGIN PRIVATE KEY), PKCS #1 (BEGIN RSA PRIVATE KEY) ali SEC1 (BEGIN EC PRIVATE KEY) ali zasebni JWK, ki vsebuje svoj član d. Šifrirane datoteke PEM in zasebni ključi OpenSSH niso podprti. Ključ mora ustrezati algoritmu, zato ES384 zahteva ključ P-384, ključi RSA pa morajo imeti vsaj 2048 bitov.
Kako se nastavita iat in exp?
Ko je možnost »čas izdaje« vklopljena, se iat nastavi na trenutni čas, razen če vsebina že vsebuje zahtevek iat. Ko je veljavnost daljša od 0 sekund, se exp nastavi na trenutni čas plus toliko sekund in nadomesti morebitni exp v vaši vsebini. Pri veljavnosti 0 se exp ne doda, morebitni exp iz vsebine pa se ohrani.
Čemu je namenjeno polje kid?
Neprazen ID ključa se zapiše v glavo kid, da lahko preverjevalniki izberejo pravi ključ iz JWKS. Če kot ključ za podpis prilepite JWKS, kid določi tudi, kateri ključ iz nabora podpiše žeton. Pretvornik JWK in generatorji ključev prikažejo prstni odtis RFC 7638, ki je primerna vrednost za kid.
Kaj vsebuje rezultat?
Prejmete strnjeni žeton, algoritem, ID ključa, čas izdaje in čas poteka veljavnosti v UTC ter natančno glavo in vsebino JSON, ki sta bili podpisani. Žeton kopirajte iz prvega bloka. Pozneje ga znova dekodirajte z Dekodirnikom JWT ali preverite s Preverjevalnikom JWT.
Ali se moje skrivnosti ali ključi shranjujejo?
Ne. Skrivnost ali zasebni ključ se pošlje samo v zahtevi za podpis žetona, enkrat uporabi v pomnilniku ter se nikoli ne beleži ali shrani. Kljub temu za preizkuse raje uporabite testne ključe in nikoli ne prilepite produkcijskega ključa za podpisovanje v spletno orodje, razen če nadzorujete strežnik.
Ali obstajajo omejitve velikosti?
Vsebina je lahko dolga največ 65,536 znakov, ključ največ 65,536 znakov, kid pa največ 256 znakov. Veljavnost je lahko od 0 do 315,360,000 sekund, kar je deset let. Daljši vnosi so zavrnjeni s sporočilom, ki navede polje.