JWT-ellenőrző
Ellenőrizze, hogy egy JSON Web Token valódi-e, és még érvényes-e. Illessze be a tokent a HMAC-titokkal, egy PEM nyilvános kulccsal, tanúsítvánnyal, JWK-val vagy teljes JWKS-sel együtt. Az ellenőrző a jose könyvtárral ellenőrzi az aláírást, összeveti az exp és nbf értékét az aktuális idővel és az opcionális óraeltéréssel, majd egyértelmű eredményt ad a dekódolt fejléc és claim-ek mellett. Az alg none értékű tokeneket elutasítja.
Gyakran ismételt kérdések
Mit ellenőriz az ellenőrző?
Összeveti az aláírást a megadott kulccsal, majd ellenőrzi az exp és az nbf claimet az aktuális időhöz képest. Az eredmény csak akkor érvényes, ha az aláírás egyezik, és egyik időellenőrzés sem jelez hibát. Az iss, aud vagy sub típusú claim-ek megjelennek a payloadban, de a rendszer nem veti össze őket elvárt értékekkel.
Milyen kulcsokat illeszthetek be?
HS256, HS384 és HS512 esetén illessze be a megosztott titkot szövegként vagy oct JWK-ként. RSA, EC és EdDSA tokenekhez illesszen be PEM nyilvános kulcsot (SPKI vagy PKCS #1), X.509 tanúsítványt, nyilvános vagy privát JWK-t, legfeljebb 50 kulcsot tartalmazó JWKS-t, illetve privát PEM-kulcsot, amelyből csak a nyilvános részt használjuk fel.
Hogyan választja ki a rendszer a megfelelő kulcsot egy JWKS-ből?
Ha a token fejlécében van kid, a készletben az azonos kid értékű kulcsot használja a rendszer; ha nincs egyezés, a hibaüzenet megnevezi a kid értékét. kid nélkül a készletnek pontosan egy kulcsot kell tartalmaznia. Ez azt tükrözi, ahogyan a legtöbb szerver kulcsot választ egy jwks_uri dokumentumból.
Mire szolgál az algoritmus beállítása?
A „Use the token's alg” beállítás esetén az algoritmust a token fejléce határozza meg, de a kulcsnak továbbra is illeszkednie kell hozzá, ezért RSA nyilvános kulcs soha nem használható HMAC-titokként. Válasszon konkrét algoritmust, ha azt is meg szeretné követelni, hogy a token ezt használja; a szervernek így kell rögzítenie az elvárt algoritmust. Az ettől eltérő alg értékű tokent a rendszer elutasítja, és mindkét nevet megjeleníti.
Miért utasítja el a rendszer az alg none értékű tokent?
Az alg none értékű token nem tartalmaz aláírást, így nincs mit ellenőrizni, és bárki megírhatta. Az ilyen tokenek elfogadása jól ismert sebezhetőség a JWT könyvtárakban. Az ellenőrző érvényes eredmény helyett hibát jelez.
Hogyan működik az exp, az nbf és az óraeltérés tűrése?
A token lejártnak számít, ha az exp értéke az aktuális időponttal megegyezik vagy annál korábbi, és még nem érvényes, ha az nbf értéke későbbi az aktuális időpontnál. A 0 és 3600 másodperc közötti óraeltérési tűrés mindkét ellenőrzést kiterjeszti, hogy figyelembe vegye a szerverek órái közötti eltérést. A jelen lévő, de nem számértékű claim-ek érvénytelenné teszik a tokent.
Mit jelent az érvénytelen aláírás?
A tokent nem az Ön által megadott kulccsal írták alá, vagy az aláírás után módosították a fejlécét vagy a törzsét. Ellenőrizze, hogy a megfelelő nyilvános kulcsot vagy titkot illesztette-e be, pontosan a megfelelő karakterekkel, és hogy a tokent teljes egészében másolta-e ki. A dekódolt fejléc és törzs továbbra is megjelenik, így összehasonlíthatja őket.
Mely algoritmusok támogatottak?
HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512 és EdDSA Ed25519-kulcsokkal. Az RSA-kulcsoknak legalább 2048 bitesnek kell lenniük. A titkosított tokeneket (JWE) a rendszer nem fejti vissza.
Tárolja a rendszer a tokent vagy a kulcsot?
Nem. A token és a kulcs csak az ellenőrzés idejére, memóriában használatos, és soha nem kerül naplózásra vagy mentésre. A nyilvános kulcs biztonságosan megosztható, de a HMAC-titkokkal bánjon körültekintően, és cserélje le azokat a titkokat, amelyekről úgy gondolja, hogy kiszivárogtak.
Mekkora lehet a token és a kulcs?
A token legfeljebb 65,536 karakteres, a kulcsmező pedig legfeljebb 262,144 karakteres lehet, ami elegendő a nagy JWKS dokumentumokhoz. A tokennek három, pontokkal elválasztott base64url részből kell állnia: egy JSON fejlécből, amely alg tagot tartalmaz, és egy JSON objektumból, amely a törzsét adja.