JWT-generátor
Hozzon létre saját JSON claimjeiből aláírt JSON Web Tokent. Válassza a HS256, HS384 vagy HS512 algoritmust közös titokkal, az RS256–PS512 algoritmusokat RSA titkos kulccsal, az ES256–ES512 algoritmusokat a megfelelő EC-kulccsal, vagy az EdDSA-t Ed25519-kulccsal; a kulcs PEM vagy JWK formátumú lehet. A generátor hozzáadhat iat, exp és kid fejlécet, a jose könyvtárral ír alá, és a tömör tokent a dekódolt fejléc és payload mellett jeleníti meg.
Gyakran ismételt kérdések
Milyen aláírási algoritmusokat használhatok?
A generátor támogatja a HS256, HS384 és HS512 algoritmusokat közös titokkal; az RS256, RS384, RS512, PS256, PS384 és PS512 algoritmusokat RSA titkos kulccsal; az ES256, ES384 és ES512 algoritmusokat P-256, P-384 vagy P-521 görbéjű EC titkos kulccsal; valamint az EdDSA-t Ed25519 titkos kulccsal. A kiválasztott algoritmus az alg fejlécbe kerül, a typ értéke pedig mindig JWT.
Mit adjak meg payloadként?
Adjon meg egy JSON objektumot a claimjeivel, például sub, name, iss, aud vagy bármilyen egyéni tag. A tömböket, karakterláncokat és az objektumtól eltérő értékeket a rendszer elutasítja, mert a JWT payloadnak JSON objektumnak kell lennie. A claim-ek sorrendje és értékei pontosan úgy maradnak meg, ahogy megadta őket.
Hogyan olvassa be a HMAC-titkot?
HS256, HS384 és HS512 esetén a rendszer UTF-8 szövegként használja a titkot, miután eltávolította az elején és végén lévő szóközöket. Ha a titok bináris, adja meg JWK-ként, például {"kty": "oct", "k": "..."} formában, base64url-kódolású bájtokkal; a rendszer a dekódolt bájtokat használja. A PEM-kulcsokat a HMAC-algoritmusokhoz a rendszer elutasítja, mivel nyilvános kulcsot HMAC-titokként használni klasszikus hiba.
Milyen hosszú legyen egy HS256-titok?
Az RFC 7518 szerint a kulcsnak legalább olyan hosszúnak kell lennie, mint a hash kimenete: HS256 esetén 32 bájt, HS384 esetén 48, HS512 esetén pedig 64. Az eszköz rövidebb titkokkal is aláír, így teszttokeneket reprodukálhat, éles környezetben azonban hosszú, véletlenszerű értékeket használjon, például a Jelszógenerátorral.
Milyen titkosk kulcsformátumokat fogad el az RSA, az EC és az EdDSA esetén?
Adjon meg titkosítatlan PEM titkos kulcsot PKCS #8 (BEGIN PRIVATE KEY), PKCS #1 (BEGIN RSA PRIVATE KEY) vagy SEC1 (BEGIN EC PRIVATE KEY) formátumban, vagy olyan titkos JWK-t, amely tartalmazza a d tagot. A titkosított PEM-fájlokat és az OpenSSH titkos kulcsokat a rendszer nem olvassa be. A kulcsnak illeszkednie kell az algoritmushoz: az ES384 P-384 kulcsot igényel, az RSA-kulcsoknak pedig legalább 2048 bitesnek kell lenniük.
Hogyan állítja be a rendszer az iat és az exp értékét?
Ha a kibocsátás időpontja beállítás be van kapcsolva, az iat az aktuális időre áll, kivéve, ha a payload már tartalmaz iat claimet. Ha a lejárat 0 másodpercnél nagyobb, az exp az aktuális idő plusz ennyi másodperc lesz, és felülírja a payloadban lévő exp értéket. 0 másodperces lejárat esetén nem ad hozzá exp értéket, és megtartja a payloadban lévőt.
Mire szolgál a kid mező?
A nem üres kulcsazonosító a kid fejlécbe kerül, hogy az ellenőrzők kiválaszthassák a megfelelő kulcsot egy JWKS-ből. Ha aláírókulcsként JWKS-t ad meg, a kid azt is kiválasztja, hogy a készlet melyik kulcsa írja alá a tokent. A JWK-konverter és a kulcsgenerátorok megjelenítik az RFC 7638 szerinti ujjlenyomatot, amely jó kid érték.
Mit tartalmaz az eredmény?
Megkapja a tömör tokent, az algoritmust, a kulcsazonosítót, a kibocsátás és a lejárat időpontját UTC formátumban, valamint a pontosan aláírt fejlécet és payloadot JSON. Másolja ki a tokent az első blokkból. Később dekódolja újra a JWT dekóderrel, vagy ellenőrizze a JWT ellenőrzővel.
Tárolja a rendszer a titkaimat vagy kulcsaimat?
Nem. A titok vagy a titkos kulcs csak a tokent aláíró kérésben kerül továbbításra, egyszer használatos a memóriában, és soha nem kerül naplózásra vagy mentésre. Kísérletezéshez ennek ellenére tesztkulcsokat használjon, és soha ne illesszen be éles aláírókulcsot olyan webes eszközbe, amelynek szerverét nem Ön felügyeli.
Vannak méretkorlátok?
A payload legfeljebb 65,536 karakter, a kulcs legfeljebb 65,536 karakter, a kid pedig legfeljebb 256 karakter hosszú lehet. A lejárat 0 és 315,360,000 másodperc között állítható be, ami tíz évnek felel meg. A hosszabb bemeneteket a rendszer elutasítja, és megnevezi az érintett mezőt.