Inspeziona JWKS u estraw iċ-ċwievet pubbliċi PEM
- Dashboard
- Dokumentazzjoni
- API
X'inhu JWKS?
AJWKS (JSON Web Key Set, RFC 7517) huwa dokument JSON li jiġbor flimkien lista ta' ċwievet pubbliċi f'forma strutturata. Huwa użat biex jippubblika ċ-ċwievet li emittent JWT juża biex jiffirma t-tokens tiegħu, sabiex kull konsumatur ikun jista’ jiġborhom u jivverifika l-firma tat-tokens li jirċievi. Il-format dejjem jidher bħal dan:
{
"ċwievet": [
{ "kty": "RSA", "kid": "abc123", "use": "sig", "alg": "RS256", "n": "...", "e": "AQAB"},
{ "kty": "EC", "kid": "def456", "use": "sig", "alg": "ES256", "crv": "P-256", "x": "...", "y": "..." }
]
}
Kull entrata fit-tabella keys hija JWK (JSON Web Key) li
jiddeskrivi ċavetta pubblika: tip ta' ċavetta (kty), identifikatur (kid), użu
maħsub (use), algoritmu fil-mira (alg) u komponenti kriptografiċi.
Meta jintuża JWKS?
Il-JWKS huwa s-sinsla tal-arkitetturi moderni OAuth2 u OpenID Connect. Inti se jiltaqgħu f'diversi kuntesti:
- OIDC Discovery: kwalunkwe fornitur ta' OpenID Connect jesponi dokument ta'
konfigurazzjoni f'
/.well-known/openid-configurationli fih fieldjwks_uri. F'dan il-URL hemm JWKS li jelenka ċwievet pubbliċi attivi. - Verifika JWT: meta l-API tiegħek tirċievi token iffirmat f'RS256 jew ES256,
jaqra l-
kidtal-header, tniżżel il-JWKS tat-trasmettitur, isib iċ-ċavetta korrispondenti, joħroġ iċ-ċavetta pubblika fil-format PEM, u jivverifika l-firma. - Rotazzjoni taċ-ċwievet: emittent jista’ jippubblika diversi ċwievet fl-istess ħin, dan li jippermettilek tintroduċi ċavetta ġdida biex tiffirma t-tokens il-ġodda filwaqt li żżomm l-antik fis-servizz waqt li jiskadu t-tokens fiċ-ċirkolazzjoni.
- Federazzjonijiet: SAML, SCIM, servizzi interkonnessi, pubblikazzjoni ta' JWKS jevita li jkollu jiskambja manwalment iċ-ċertifikati X.509 bejn l-imsieħba.
Oqsma essenzjali ta' JWK
Xi oqsma jidhru sistematikament f'JWK. Din l-għodda estratti u turihom għal kull ċavetta tal-JWKS analizzata:
kid(ID taċ-ċavetta): identifikatur uniku taċ-ċavetta. Huwa dan il-valur li l-header ta' JWT ipoġġi fil-qasamkidtiegħu biex jindika liema ċavetta tal-JWKS għandhom jintużaw għall-verifika.kty(tip ta' ċavetta): familja kriptografika. Iż-żewġ valuri dominanti humaRSA(ċwievet RSA klassiċi, użati ma' RS256, RS384, RS512) uEC(kurvi ellittiċi, użati ma 'ES256, ES384, ES512).alg(algoritmu): algoritmu tal-firma li għalih din iċ-ċavetta hija ppjanata. Qasam mhux obbligatorju iżda spiss jimtela. Jippermettilek tiffiltra ċ-ċwievet malajr użabbli għal JWT partikolari.użu: użu taċ-ċavetta.siggħall-firma (każ tas-soltu),encgħall-kriptaġġ (rari, użat ma’ JWE).
Għaliex tikkonverti JWK għal PEM?
Il-maġġoranza tal-libreriji kriptografiċi klassiċi (OpenSSL, openssl_verify fi
PHP, crypto f'Node.js, JCA f'Java) jaċċettaw ċwievet pubbliċi fil-format
PEM (Base64 inkwadrat minn -----BEGIN PUBLIC KEY-----), mhux direttament
fil-format JWK. Il-konverżjoni ta' JWK għal PEM hija għalhekk essenzjali għal:
- Ivverifika manwalment il-firma ta' JWT minn skript jew għodda tal-linja tal-kmand
(
jwt,jose,pass crypto). - Importa ċ-ċavetta f'għodda ta' debug bħal JWT Verifier li jistenna ċavetta PEM fil-qasam tagħha "ċavetta pubblika".
- Aħżen ċavetta f'cache lokali jew f'fajl ta' konfigurazzjoni f'forma universali u tinqara.
- Qabbel malajr żewġ ċwievet (il-format PEM jiffaċilita d-differenzi viżwali).
Limitazzjonijiet u twissijiet
Din l-għodda tappoġġja RSA (kty=RSA) u ECċwievet pubbliċi
(kty=EC fuq kurvi P-256, P-384,
P-521). Tipi oħra (OKP għal Ed25519, oct għal
ċwievet simmetriċi) mhumiex konvertiti: huma rrappurtati b'messaġġ ta 'żball minn
input, il-bqija tal-JWKS jibqa' jinqara.
- Il-konverżjoni ssir f'direzzjoni waħda: JWKS għal PEM. Il- il-bini mill-ġdid ta' JWK minn ċavetta PEM eżistenti mhuwiex kopert minn dan verżjoni.
- Il-JWKS għandu jkun pejstjat kif inhu bħala test JSON. Irkupru
awtomatiku minn URL
jwks_urijew endpoint OIDC ma jsirx server, biex jiġu evitati sejħiet ħerġin mhux mistennija. - Iċ-ċwievet privati m'għandhomx jidhru f'JWKS pubbliku, u din l-għodda ma tiġbedx minn komponenti pubbliċi anki jekk kienet preżenti ċavetta privata.
Kif tużah
- Irkupra l-JWKS tat-trasmettitur li trid tispezzjona. Għal fornitur OIDC,
l-indirizz huwa normalment
https://example.com/.well-known/jwks.jsonjewhttps://example.com/oauth2/jwks. - Ikkopja d-dokument JSON kollu (l-oġġett li fih iċ-ċavetta
keys). - Pastha fil-kaxxa tad-dħul tal-għodda u ibda l-analiżi.
- Għal kull ċavetta JWKS, l-għodda turi l-
kidtagħha, il-ktytagħha,alg, l-usetagħha u ċ-ċavetta pubblika kkonvertita għall-format PEM. - Ikklikkja fuq "kopja" biex tirkupra l-PEM u użah fi skript ta' verifika, f' JWT Verifier tagħna, jew fi kwalunkwe għodda kompatibbli OpenSSL.
Mistoqsijiet frekwenti
Fejn nista' nsib il-JWKS ta' fornitur OIDC?
Il-maġġoranza l-kbira tal-fornituri tal-OpenID Connect jippubblikaw dokument ta 'skoperta fuq
https://example.com/.well-known/openid-configuration. Dan il-JSON fih qasam
jwks_uri li jindika l-JWKS attwali. Xi fornituri jservu direttament
il-JWKS fuq https://example.com/.well-known/jwks.json jew fuq endpoint OAuth2
iddedikat. Niżżel il-kontenut u waħħalha hawn kif inhu.
Għaliex il-kid huwa importanti?
Il-kid (key ID) huwa l-identifikatur li l-header ta’ JWT ipoġġi fil-qasam tiegħu stess
kid biex tindika liema ċavetta JWKS għandha tintuża għall-verifika. Mingħajr dan
identifikatur, il-konsumatur ikollu jipprova kull ċavetta tal-JWKS, li tikkomplika d-dijanjosi billi
każ ta’ żball. Il-preżenza ta' kid għal kull ċavetta hija għalhekk meqjusa bħala tajba
prattiku, u l-IdPs serji kollha jippubblikaw wieħed.
X'inhi d-differenza bejn kty=RSA u kty=EC?
RSA hija l-familja storika ta 'firem asimmetriċi, użati ma' RS256, RS384, RS512. Il-
ċwievet huma deskritti minn modulo n u esponent e. EC (Ellissi
Curve) hija aktar riċenti u tagħti firem iqsar għal livell ekwivalenti ta’ sigurtà.
Iċ-ċwievet EC huma deskritti b'kurva waħda (crv = P-256, P-384 jew P-521) u żewġ
Koordinati x u y. Din l-għodda tikkonverti ż-żewġ familji f'PEM.
Kif tuża l-PEM estratt biex tivverifika JWT?
Ikkopja l-PEM, imbagħad waħħalha fil-qasam "ċavetta pubblika" ta 'tagħna
JWT Verifikatur bil-JWT biex jivvalida. Tista 'wkoll
użaha mil-linja tal-kmand b'openssl dgst, minn Node.js b'
crypto.verify, minn Python bi kriptografija jew
PyJWT, minn Java b'JCA, eċċ. Il-format PEM huwa rikonoxxut universalment.
JWKS tiegħi fih ċavetta Ed25519 (OKP), għaliex mhix konvertita?
Il-konverżjoni taċ-ċwievet OKP (Ed25519, Ed448, X25519, X448) teħtieġ loġika
speċifika u kodifikazzjoni DER differenti minn dik taċ-ċwievet RSA u EC. Din il-verżjoni tal-għodda ma tagħmilx dan
jappoġġja biss RSA u EC. Ċwievet mhux ġestiti huma rrappurtati
individwalment b'messaġġ ta' żball, mingħajr ma timblokka l-analiżi ta' entrati oħra JWKS.
Nistgħu nirkupraw il-JWKS minn URL aktar milli nwaħħalha?
Mhux f'din il-verżjoni. L-għodda ma tagħmel l-ebda sejħiet HTTP ħerġin biex tibqa 'mgħaġġla u tevita
li jaġixxi bħala prokura mhux intenzjonata. Niżżel il-JWKS mill-browser tiegħek jew ma'
curl https://example.com/.well-known/jwks.json imbagħad waħħal il-kontenut fil-field
dħul.
Eżempju ta' talba
curl -X POST https://cdrn.fr/api/v1/tools/jwks-inspector/execute \
-H "Content-Type: application/json" \
-d '{"jwks":"..."}'
Skema ta' input
| Kamp | Tip | Meħtieġ | Default |
|---|---|---|---|
jwks |
text | ✓ | – |
Endpoints
GET https://cdrn.fr/api/v1/tools- telenka l-għodod kollha disponibbliGET https://cdrn.fr/api/v1/tools/jwks-inspector- tikseb l-iskema ta' din l-għoddaPOST https://cdrn.fr/api/v1/tools/jwks-inspector/execute- teżegwixxi din l-għodda b'payload JSON