Kontrolli JWKS-i ja eralda avalikud PEM-võtmed
- Töölaud
- Dokumentatsioon
- API
Mis on JWKS?
JWKS (JSON Web Key Set, RFC 7517) on JSON-dokument, mis koondab avalike võtmete loend struktureeritud kujul. Seda kasutatakse JWT väljaandja võtmete avaldamiseks kasutab oma žetoonide allkirjastamiseks, et iga tarbija saaks need kätte saada ja kontrollige saadud žetoonide allkirja. Formaat näeb alati välja selline:
kood>{
"võtmed": [
{ "kty": "RSA", "kid": "abc123", "use": "sig", "alg": "RS256", "n": "...", "e": "AQAB" },
{ "kty": "EC", "kid": "def456", "use": "sig", "alg": "ES256", "crv": "P-256", "x": "...", "y": "..." }
]
}
Iga kirje tabelis võtmed on JWK (JSON Web Key), mis
kirjeldab avalikku võtit: võtme tüüp (kty), identifikaator (laps), kasutus
kavandatud (kasutus), sihtalgoritm (alg) ja krüptograafilised komponendid.
Millal JWKS-i kasutatakse?
JWKS on tänapäevaste OAuth2 ja OpenID Connecti arhitektuuride selgroog. Sina kohtab mitmes kontekstis:
- OIDC Discovery: iga OpenID Connecti pakkuja avalikustab selle dokumendi
konfiguratsioon aadressil
/.well-known/openid-configuration, mis sisaldab väljajwks_uri. Sellel URL-il on JWKS, mis loetleb aktiivsed avalikud võtmed. - JWT-kinnitus: kui teie API saab RS256-sse või ES256-sse sisse logitud loa,
see loeb päise
kid, laadib alla saatja JWKS-i, leiab võtme vastab, tuletab avaliku võtme PEM-vormingus ja kontrollib allkirja. - Võtme vaheldumine: väljastaja saab avaldada mitu võtit korraga, mis võimaldab sisestada uue võtme, et allkirjastada uued märgid, säilitades samal ajal vana kasutuses, samal ajal kui ringluses olevad märgid aeguvad.
- Liidud: SAML, SCIM, omavahel ühendatud teenused, JWKS-i avaldamine väldib X.509 sertifikaatide käsitsi vahetamist partnerite vahel.
JWK olulised väljad
Mõned väljad ilmuvad JWK-s süstemaatiliselt. See tööriist ekstraktib ja kuvab need iga analüüsitud JWKS-i võtme kohta:
laps(võtme ID): võtme kordumatu identifikaator. See on see väärtus mille JWT päis paneb väljalelaps, et näidata, milline JWKS-i võti tuleb kasutada kontrollimiseks.kty(võtmetüüp): krüptograafiline perekond. Kaks väärtust domineerivad onRSA(klassikalised RSA-võtmed, mida kasutatakse koos RS256, RS384, RS512) jaEC(elliptilised kõverad, kasutatakse koos ES256, ES384, ES512).alg(algoritm): allkirjaalgoritm, mille jaoks see võti on planeeritud. Valikuline väli, kuid sageli täidetakse. Võimaldab võtmeid kiiresti filtreerida kasutatav antud JWT jaoks.kasutus: võtme kasutamine.sigallkirja jaoks (case tavaline),enckrüptimiseks (harv, kasutatakse koos JWE-ga).
Miks teisendada JWK PEM-i?
Enamik klassikalisi krüptoteeke (OpenSSL, openssl_verify
PHP, krüpto Node.js-s, JCA Javas) aktsepteerivad avalikke võtmeid vormingus
PEM (Base64, raamitud -----BEGIN AVALIK VÕTI-----), mitte otse
JWK formaadis. Seetõttu on JWK teisendamine PEM-iks hädavajalik:
- Kinnitage JWT allkirja käsitsi skripti või käsurea tööriista abil
(
jwt,jose,step crypto). - Importige võti silumistööriista, nagu JWT Verifier mis ootab oma "avaliku võtme" väljale PEM-võtit.
- Salvestage võti universaalsel kujul kohalikku vahemällu või konfiguratsioonifaili ja loetav.
- Võrdle kiiresti kahte võtit (PEM-vorming hõlbustab visuaalseid erinevusi).
Piirangud ja hoiatused
See tööriist toetab RSA (kty=RSA) ja EC avalikke võtmeid
(kty=EC kõveratel P-256, P-384,
P-521). Muud tüübid (OKP jaoks Ed25519, oct jaoks
sümmeetrilisi võtmeid) ei teisendata: neist teatatakse veateatega
sisend, jääb ülejäänud JWKS loetavaks.
- Teisendamine toimub ühes suunas: JWKS-st PEM-i. The see ei hõlma JWK ümberehitamist olemasolevast PEM-võtmest versioon.
- JWKS tuleb kleepida nii nagu see on JSON-tekstina. Taastumine
automaatne URL-ist
jwks_urivõi OIDC lõpp-punktist ei tehta server, et vältida ootamatuid väljuvaid kõnesid. - Privaatvõtmed ei peaks ilmuma avalikus JWKS-is ja see tööriist ei ekstrakti kui avalikud komponendid, isegi kui privaatvõti oli olemas.
Kuidas seda kasutada
- Tooge välja selle saatja JWKS, mida soovite kontrollida. OIDC pakkuja jaoks
aadress on tavaliselt
https://example.com/.well-known/jwks.jsonvõihttps://example.com/oauth2/jwks. - Kopeerige kogu JSON-dokument (võtit
võtmeidsisaldav objekt). - Kleepige see tööriista sisestuskasti ja alustage analüüsi.
- Iga JWKS-võtme puhul kuvab tööriist selle
kid, sellekty, sellealg, sellekasutusja avalik võti teisendati PEM-vormingusse. - PEM-i toomiseks ja kinnitusskriptis kasutamiseks klõpsake käsul "Kopeeri". meie JWT kinnitaja või mis tahes ühilduvas tööriistas OpenSSL.
Korduma kippuvad küsimused
Kust ma leian OIDC pakkuja JWKS-i?
Valdav enamus OpenID Connecti pakkujatest avaldab avastusdokumendi
https://example.com/.well-known/openid-configuration. See JSON sisaldab välja
jwks_uri, mis osutab tegelikule JWKS-ile. Mõned tarnijad teenindavad otse
JWKS saidil https://example.com/.well-known/jwks.json või OAuth2 lõpp-punktis
pühendatud. Laadige sisu alla ja kleepige see siia.
Miks on laps oluline?
laps (võtme ID) on identifikaator, mille JWT päis oma väljale lisab
laps, et näidata, millist JWKS-võtit tuleks kinnitamiseks kasutada. Ilma selleta
identifikaatorit, peaks tarbija proovima iga JWKS-i võtit, mis muudab diagnoosimise keerulisemaks.
vea juhtum. Seetõttu loetakse ühe võtme kohta lapse olemasolu heaks
praktiline ja kõik tõsised IDP-d avaldavad selle.
Mis vahe on kty=RSA ja kty=EC vahel?
RSA on ajalooline asümmeetriliste signatuuride perekond, mida kasutatakse koos RS256, RS384, RS512. The
võtmeid kirjeldavad moodul n ja astendaja e. EC (elliptiline
Curve) on uuem ja annab samaväärse turvalisuse taseme jaoks lühemad allkirjad.
EC-klahve kirjeldab üks kõver (crv = P-256, P-384 või P-521) ja kaks
Koordinaadid x ja y. See tööriist teisendab mõlemad perekonnad PEM-iks.
Kuidas kasutada eraldatud PEM-i JWT kinnitamiseks?
Kopeerige PEM ja kleepige see meie väljale "avalik võti".
JWT kinnitaja koos JWT-ga kinnitamiseks. Saate ka
kasutage seda käsurealt käsuga openssl dgst, failist Node.js koos
crypto.verify, Pythonist koos krüptograafiaga või
PyJWT, Java-lt JCA-ga jne. PEM-vorming on üldiselt tunnustatud.
Minu JWKS sisaldab Ed25519 (OKP) võtit, miks seda ei teisendata?
Võtmete OKP (Ed25519, Ed448, X25519, X448) teisendamine nõuab loogikat
spetsiifiline ja DER-kodeering, mis erineb RSA ja EC võtmete omast. See tööriista versioon seda ei tee
toetab ainult RSA ja EC. Teatatakse haldamata võtmetest
ükshaaval veateatega, blokeerimata teiste JWKS-i kirjete analüüsi.
Kas saame JWKS-i kleepimise asemel URL-ist hankida?
Selles versioonis mitte. Tööriist ei tee ühtegi väljaminevat HTTP-kõnet, et püsida kiire ja vältida
tegutseda tahtmatu puhverserverina. Laadige JWKS alla oma brauserist või kasutades
kõverdage https://example.com/.well-known/jwks.json ja seejärel kleepige sisu väljale
sisenemine.
Päringunäide
curl -X POST https://cdrn.fr/api/v1/tools/jwks-inspector/execute \
-H "Content-Type: application/json" \
-d '{"jwks":"..."}'
Sisendskeem
| Väli | Tüüp | Kohustuslik | Vaikimisi |
|---|---|---|---|
jwks |
text | ✓ | – |
Lõpp-punktid
GET https://cdrn.fr/api/v1/tools- loetleb kõik saadaolevad tööriistadGET https://cdrn.fr/api/v1/tools/jwks-inspector- toob selle tööriista skeemiPOST https://cdrn.fr/api/v1/tools/jwks-inspector/execute- täidab selle tööriista JSON-payloadiga