UltKit

JWT deskodetzailea

Itsatsi JSON Web Token bat eta irakurri haren goiburua eta payloada JSON formateatu gisa. Iraungitze- eta jaulkitze-uneak data gisa erakusten dira, eta tokena une honetan baliozkoa den adierazten da. Deskodetze osoa zure nabigatzailean egiten da, eta hori garrantzitsua da tokena kredentzial aktibo bat denean.

0 karaktere · 0 hitz · 0 lerro

0 karaktere · 0 hitz · 0 lerro

Nabigatzaile-fitxa honetan bertan exekutatzen da. Zure testua ez da inoiz igotzen edo gordetzen.

Claim erregistratuak

RFC 7519ren 4.1. atalean definitutako zazpi claim-izenak. Guztiak aukerakoak dira; denborak 1970-01-01 UTC-tik aurrerako segundoak dira.

Claim-aEsanahia
issJaulkitzailea: tokena sortu eta sinatu duena
subSubjektua: tokenak aipatzen duen erabiltzailea edo entitatea
audAudientzia: tokena nori zuzenduta dagoen
expIraungitze-ordua: baztertu tokena une honen ondoren
nbfEz lehenago: baztertu tokena une honen aurretik
iatJaulkitze-unea: tokena noiz sortu zen
jtiJWT IDa: identifikatzaile bakarra, errepikapenak saihesteko

alg balio arruntak

alg balioaEsanahia
HS256HMAC SHA-256rekin; sekretu partekatu batek sinatu eta egiaztatzen du
RS256RSA PKCS#1 v1.5 sinadura SHA-256rekin; gako pribatuak sinatzen du, publikoak egiaztatzen
PS256RSA-PSS SHA-256rekin
ES256ECDSA P-256 kurban SHA-256rekin; sinadura laburrak
EdDSAEd25519 edo Ed448 sinadurak
noneSinatu gabeko tokena; zerbitzariek baztertu egin beharko lukete

Zer dago JSON Web Token baten barruan

JWT RFC 7519 estandarrean definitzen da (2015eko maiatza), eta ingelesezko "jot" hitzaren antzera ahoskatzea proposatzen da. Sinatutako forma arruntak puntuz lotutako hiru Base64url kate ditu: header.payload.signature. Header-ak sinadura-algoritmoa adierazten du alg eremuan, adibidez HS256 edo RS256, eta askotan gako-identifikatzailea kid eremuan. Payload-ak claim-ak ditu, hau da, JSON eremuak, hala nola sub (erabiltzailea), iss (igorlea), aud (xede den hartzailea) eta exp, nbf eta iat, 1970eko urtarrilaren 1eko UTC orduaz geroztiko segundoetan adierazitako uneak. Deskodetzaileak hiru horiek zure ordu lokalera eta ISO 8601 formatura bihurtzen ditu, eta tokenak iraungi duen, oraindik baliozkoa ez den ala bere epearen barruan dagoen esaten dizu.

Base64url kodeketa bat da, ez enkriptatzea; beraz, tokena duen edonork irakur dezake bere payload-a, orrialde honek egiten duen bezala. Ez jarri inoiz pasahitzik, txartel-zenbakirik edo bestelako sekreturik claim-etan. Puntuz bereizitako bost zati dituen tokena JWE bat da, enkriptatutako token bat; haren edukia ezin da gakorik gabe irakurri, eta deskodetzaileak hala adierazten du. Authorization goiburutik kopiatutako hasierako "Bearer " automatikoki kentzen da.

Zergatik ez den sinadura hemen egiaztatzen

Sinadurak frogatzen du header-a eta payload-a gakoa duen norbaitek sortu dituela eta ordutik ez direla aldatu. Egiaztatzeko gako hori behar da: HS256 bezalako HMAC algoritmoetan sekretu partekatua, edo RS256, ES256 edo EdDSA kasuan igorlearen gako publikoa. Produkzioko sinadura-sekretu bat edozein web orritan itsastea ideia txarra da, eta gakorik gabe tokena bermatzen duela aparentzia egingo lukeen deskodetzaile batek konfiantza faltsua emango luke; horregatik, tresna honek sinadura erakusten du baina ez du egiaztatzen. Ikusten duzuna tokenak egiten duen aldarrikapen gisa hartu, ez egitate gisa.

Egiaztapena zure zerbitzarian egin behar da, mantentzen den liburutegi batekin eta espero den algoritmoa finkatuta. Bi errore historikok azaltzen dute zergatik: alg "none" onartzea, edonork sinatu gabeko tokena faltsifikatzeko aukera ematen duena, eta algoritmo-nahasmena, non RS256 espero duen zerbitzari bati HS256 sinadura egiaztarazten zaion gako publikoa HMAC sekretu gisa erabiliz. Deskodetzailea arazketarako da: hornitzaile batek zein claim igortzen dituen ikusteko, hartzaile okerra antzemateko, edo saioak huts egin duela jakiteko exp duela minutu bat igaro zelako. Base64url zatiak gordinean irakurtzeko, erabili Base64 deskodetzailea.

Maiz egiten diren galderak

Segurua al da benetako sarbide-token bat JWT deskodetzaile batean itsastea?
Orri honetan tokena ez da zure nabigatzailetik ateratzen. Hala ere, token baliozko batek pasahitz baten modura funtzionatzen du iraungi arte; beraz, hobe da iraungitako edo probako tokenak erabiltzea, eta benetakoak pantaila-argazkietatik eta txatetatik kanpo uztea.
Zergatik agertzen da nire tokena iraungita, jaulki berria bada?
Egiaztatu lehenik zure gailuaren ordua. Igorle batzuek access token-ei minutu gutxiko bizitza ematen diete, eta log batetik kopiatutako token bat dirudiena baino zaharragoa izan daiteke. Exp segundoen ordez milisegundotan idatzita badago, kontrakoa gertatzen da: milaka urte aurrera geratzen da.
Norbaitek alda al dezake nire JWTaren payloada?
Edita eta birkodetu dezakete, baina sinadura ez dator bat izango. Sinadurak gako eta algoritmo zuzenekin egiaztatzen dituen zerbitzariak aldatutako tokena baztertzen du.
Zer desberdintasun dago JWS eta JWE artean?
JWS (RFC 7515) sinatuta dago, hiru zati ditu eta edonork irakur dezake. JWE (RFC 7516) enkriptatuta dago, bost zati ditu eta gakoa duenak bakarrik irakur dezake payload-a.
Saioa ixteak baliogabetzen al du JWT bat?
Berez ez. Sinatutako JWT bat baliozkoa izaten da exp arte, zerbitzariak ukapen-zerrenda bat gordetzen ez badu edo saio-erregistro bat egiaztatzen ez badu; horregatik ematen zaie access token-ei bizitza laburra.