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-a | Esanahia |
|---|---|
iss | Jaulkitzailea: tokena sortu eta sinatu duena |
sub | Subjektua: tokenak aipatzen duen erabiltzailea edo entitatea |
aud | Audientzia: tokena nori zuzenduta dagoen |
exp | Iraungitze-ordua: baztertu tokena une honen ondoren |
nbf | Ez lehenago: baztertu tokena une honen aurretik |
iat | Jaulkitze-unea: tokena noiz sortu zen |
jti | JWT IDa: identifikatzaile bakarra, errepikapenak saihesteko |
alg balio arruntak
| alg balioa | Esanahia |
|---|---|
HS256 | HMAC SHA-256rekin; sekretu partekatu batek sinatu eta egiaztatzen du |
RS256 | RSA PKCS#1 v1.5 sinadura SHA-256rekin; gako pribatuak sinatzen du, publikoak egiaztatzen |
PS256 | RSA-PSS SHA-256rekin |
ES256 | ECDSA P-256 kurban SHA-256rekin; sinadura laburrak |
EdDSA | Ed25519 edo Ed448 sinadurak |
none | Sinatu 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.