Díchódaigh JSON Web Token (JWT)
- Deais
- Doiciméadú
- API
Cad é JWT (JSON Web Token)?
Is formáid é JSON Web Token, arna ghiorrú go JWT (ar a dtugtar "jot") dlúthdhiosca sainithe ag RFC 7519 a cheadaíonn iompar sraith éileamh (éilimh) idir dhá pháirtí. Is é JWT, nó comhartha JWT, an fhormáid is mó inniu céannacht fhíordheimhnithe a chur in iúl in API HTTP. Léirítear JWT mar theaghrán ASCII comhdhéanta de trí mhír deighilte ag pointí:
header.payload.signature
Tá gach mír ionchódaithe i Base64URL, leagan de Base64 gan stuáil
= agus a chuireann - agus / in ionad + le _
ionas gur féidir leis sreabhadh trí URL nó ceanntásc HTTP gan éalú breise.
Tábhachtach: NACH bhfuil JWT criptithe. Tá formáid chaighdeánach JWT (JWS) ann go simplí sínithe: ráthaíonn an síniú sláine an ábhair, ach ní sholáthraíonn sé aon rúndacht. Is féidir le duine ar bith pálasta JWT a dhíchódú le Base64URL droim ar ais simplí, mar a dhéanann an uirlis jwt díchódaithe ar líne seo.
Anatamaíocht JWT
Tá chomhartha gréasáin json comhdhéanta de thrí chuid ar leith, agus ról sonrach ag gach ceann díobh sa mheicníocht fíordheimhnithe:
1. Ceanntásc
Is réad JSON é an ceanntásc a chuireann síos ar an gcaoi a sínítear an comhartha. Tá ar a laghad ann:
alg(algartam): an t-algartam sínithe a úsáidtear. Luachanna tipiciúla:HS256,RS256,ES256,EdDSA.typ(cineál): cineál an chomhartha, beagnach i gcónaí"JWT".kid(aitheantas eochrach): roghnach, sainaithníonn sé cén eochair ba cheart a úsáid chun an síniú a fhíorú. Praiticiúil i láthair sraith eochracha rothlach (JWKS).
2. Ualach pá
Tá na éilimh sa phálasta, is é sin le rá na héilimh a dhéanann an t-eisitheoir faoin úsáideoir nó seisiún. Sainmhíníonn RFC 7519 seacht n-éileamh caighdeánach (cláraithe éilimh):
iss(eisitheoir): cé a d'eisigh an comhartha, mar shampla"https://accounts.google.com".fo(ábhar): cé leis an chomhartha, go praiticiúil an t-aitheantas úsáideora.aud(lucht féachana): cé dó a bhfuil an comhartha ceaptha. Seachain comhartha eisithe le haghaidh API A ghlacann API B.exp(am éaga): Stampa ama Unix agus an comhartha ina dhiaidh níl sé bailí a thuilleadh.nbf(ní roimhe seo): stampa ama nach bhfuil an comhartha roimhe fós gníomhach.iat(eisithe ag): stampa ama eisiúna comhartha.jti(ID JWT): aitheantóir uathúil an chomhartha, a úsáidtear le haghaidh athimeartha a chúlghairm agus a chosc.
De ghnáth cuirtear éilimh shaincheaptha a bhaineann go sonrach leis na héilimh chaighdeánacha seo
an feidhmchlár (róil, scope, tenant_id, ríomhphost,
ceadanna...).
3. Síniú
Is comhdhlúthán cripteagrafach é an síniú a ríomhtar ar
base64url(ceanntásc) + "." + base64url(pálasta) ag baint úsáide as eochair. Is í a chruthaíonn
nach bhfuil aon duine tar éis an ceanntásc ná an pálasta a mhodhnú ón gcraoladh. Na halgartaim is coitianta:
- HS256 / HS384 / HS512: síniú siméadrach HMAC-SHA. Eochair rúnda roinnte idir an t-eisitheoir agus an fíoraitheoir. Simplí, ach mí-oiriúnach nuair atá níos mó ná tomhaltóir amháin ann.
- RS256 / RS384 / RS512: síniú RSA neamhshiméadrach. Comharthaíonn an tarchuradóir lena eochair príobháideach, fíoraíonn aon tomhaltóir leis an eochair phoiblí chomhfhreagrach. Caighdeán de facto le haghaidh OAuth2 agus OpenID Connect.
- ES256 / ES384 / ES512: síniú neamhshiméadrach ECDSA. Airíonna céanna le RS256 ach le heochracha agus sínithe i bhfad níos giorra.
- EdDSA (Ed25519): síniú neamhshiméadrach nua-aimseartha, tapa agus dlúth.
Arís eile: cosnaíonn an síniú sláine, ní rúndacht. Tá an tá pálasta fós inléite ag aon duine ar leis an chomhartha é.
Cén fáth JWT a dhíchódú?
Comhlíonann an oibríocht jwt token decode roinnt riachtanas nithiúil d'fhorbróir nó innealtóir sábháilteachta:
- Dífhabhtú Fíordheimhnithe: filleann do API 401 nó 403, ba mhaith leat a fheiceáil
cad atá sa phálasta iarbhír (
fo,scope,róil,exp) seachas buille faoi thuairim a thabhairt. - Seiceáil éilimh: deimhnigh go bhfuil an t-éileamh ar chomhartha
ag súil leis (m.sh.
tenant_idnóceadanna) roimh an gcuardach áit eile sa slabhra údaraithe. - Éaga léite: tiontaigh an stampa ama
expgo dáta daonna le haghaidh deimhnigh go bhfuil comhartha imithe in éag, nó a mhalairt ar fad gur cheart go mbeadh sé bailí fós. - Iniúchadh slándála: ag cinntiú nach scaoileann seirbhís tríú páirtí faisnéis íogair san pálasta (ríomhphoist, aitheantóirí inmheánacha, sonraí pearsanta).
- Oiliúint agus tuiscint: féach go nithiúil cad a jsonwebtoken ag teacht amach as soláthraí OAuth (Google, Auth0, Keycloak, AWS Cognito) le haghaidh na meicnicí a thuiscint gan dul isteach sna doiciméid.
- Iniúchadh ar chomharthaí poiblí: scrúdaigh JWT a aimsíodh i logaí, i fianán nó i malartú OAuth idirghlactha.
Díchódóir vs Fíoraitheoir: an t-idirdhealú criticiúil
Is cosúil go bhfuil an dá oibríocht cosúil le chéile ach níl aon rud le déanamh acu maidir le ráthaíochtaí slándála:
-
Is éard atá i
- JWT a dhíchódú an teaghrán ar an
.agus cuir Base64URL droim ar ais i bhfeidhm ar an gcéad dá mhír. Is léamh simplí é, laistigh de rochtain aon script trí-líne. Gan fíorú sínithe nach bhfuil déanta.
Is éard atá i - JWT a fhíorú an síniú ón gceanntásc a athríomh, pálasta agus eochair, ansin an toradh a chur i gcomparáid leis an síniú atá sa chomhartha. Tá sé rud a ráthaíonn nár cuireadh isteach ar an chomhartha.
Conclúid phraiticiúil: ní fiú muinín a bheith agat as díchódú. Chomh fada leis an síniú nach bhfuil fíoraithe leis an eochair cheart, d'fhéadfadh ábhar an pálasta a bheith go hiomlán bréagach. Chun an céim muiníne, úsáid ár Fíoraitheoir JWT.
Conas é a úsáid
- Faigh an JWT chun iniúchadh a dhéanamh, mar shampla ó cheanntásc
Údarú: Iompróir, ó fhianán seisiúin, ó nalocalStorageón mbrabhsálaí, nó ó loga feidhmchláir. - Greamaigh an teaghrán iomlán sa réimse ionchuir. Ní mór na trí mhír a bheith scartha le pointí.
- Taispeánann an uirlis láithreach an ceanntásc atá díchódaithe i JSON formáidithe, le an algartam agus an cineál.
- Déantar an pálasta a dhíchódú agus a thaispeáint ansin. Feiceann tú na héilimh go léir ann caighdeánach agus saincheaptha.
- Léiríonn an uirlis freisin an faisnéis sínithe (algartam dearbhaithe, fad), gan é a sheiceáil.
- Le deimhniú nár cuireadh isteach ar an chomhartha, aistrigh chuig ár Fíoraitheoir JWT leis an eochair phoiblí nó an rún poiblí a bhfuiltear ag súil leis.
Déantar an díchódú ar fad i do bhrabhsálaí i JavaScript: ní sheoltar do chomhartha riamh chuig ár bhfreastalaithe.
JWT agus slándáil: gaistí le seachaint
NÁ stóráil sonraí íogaire i bpálasta JWT sínithe.
Pasfhocail, uimhreacha cártaí creidmheasa, sonraí leighis, rúin API, aitheantóirí inmheánacha ríthábhachtacha: tá gach rud sa phálastainléite ag aon duine is leis an chomhartha, lena n-áirítear an t-úsáideoir féin trí uirlisí forbróra de a bhrabhsálaí. Ní chumhdaíonn an síniú rud ar bith, ní chruthaíonn sé ach go bhfuil an t-eisitheoir go deimhin cé a mhaíonn sé a bheith.
Cúpla riail órga chun JWT a úsáid i gceart i dtáirgeadh:
- Seiceáil síniú ar thaobh an fhreastalaí i gcónaí roimh duit aon chearta a dheonú. Léiríonn ár Fíoraitheoir JWT an oibríocht seo go díreach.
- Is fearr leat RS256 nó ES256 ná HS256 le haghaidh API poiblí. An síniú seachnaíonn neamhshiméadrach rún a roinnt idir an tarchuradóir agus gach tomhaltóir.
- Bíodh meas agat i gcónaí ar an éileamh
exp. A JWT gan éag nó le buama ama é easanálú rófhada i gcás sceitheadh. - Bailíochtaigh
issagusaudar thaobh an fhreastalaí, chun a Glactar le comhartha dlisteanach a eisíodh do sheirbhís eile trí dhearmad. - Diúltaigh
alg: "none"ar an taobh fíoraithe. Is locht clasaiceach é seo a ligeann d'ionsaitheoir aon phálasta a bhrionnú. - Coinnigh na tréimhsí saoil gearr (15 nóiméad mar shampla) agus péireáil le a athnuachan comhartha níos faide ach inchúlghairthe ar thaobh an fhreastalaí.
Sampla de chomhartha JWT díchódaithe
Cá háit a bhfaighidh tú JWT le cóipeáil?Nuair a bheidh sé díchódaithe, seo é a inneachar:
// Ceanntásc { "alg": "HS256", "cineál": "JWT" } // Ualach pá { "fo": "123", "ainm": "John", "iat": 1516239022 } // Síniú (dénártha, Base64URL ionchódaithe) HMACSHA256( base64url(ceanntásc) +"." + base64url (pálasta), rún )
Go praiticiúil, is minic a thagann JWT chun
dhíchriptiú (de réir bhrí an díchódaithe) ó cheann díobh seo suíomhanna:
Fianán HTTPaccess_token, jwt, seisiún nó a leithéid.
Stóráil áitiúil / sessionStorage: an painéal céanna,
Rannóg Stóráil Áitiúil. Stórálann go leor Limistéir faoi Chosaint Speisialta a chomhartha ansin faoi eochair
token nó auth.Údarú ceanntásc: cluaisín Líonra, roghnaigh ceann amháin
Iarratas API, léigh an ceanntásc Údarú: Iompróir . Cóipeáil ach an
cuid i ndiaidh Iompróir .Ceisteanna coitianta
Sampla iarratais
curl -X POST https://cdrn.fr/api/v1/tools/jwt-decoder/execute \
-H "Content-Type: application/json" \
-d '{"token":"..."}'
Scéimre ionchuir
| Réimse | Cineál | Riachtanach | Réamhshocrú |
|---|---|---|---|
token |
text | ✓ | – |
Críochphointí
GET https://cdrn.fr/api/v1/tools- liostaíonn na huirlisí go léir atá ar fáilGET https://cdrn.fr/api/v1/tools/jwt-decoder- faigh scéimre na huirlise seoPOST https://cdrn.fr/api/v1/tools/jwt-decoder/execute- rith an uirlis seo le pálasta JSON