Specification: RFC 7517
JSON Web Key (JWK) defines a JSON format for representing cryptographic keys. Versola exposes a JWKS endpoint so that resource servers can fetch public keys and verify JWT signatures without contacting the authorization server on every request.
JWKS Endpoint
-
GET /.well-known/jwks.jsonendpoint (Section 5) -
Content-Type: application/jsonresponse -
Cache-Control: public, max-age=86400— keys are publicly cacheable - Multiple keys in the set for zero-downtime key rotation
RSA Key Fields (Section 6.3)
-
kty— key type (RSA) -
use— key usage (sig— signature verification) -
alg— intended algorithm (RS256) -
kid— key identifier (matched against JWTkidheader) -
n— RSA modulus (Base64URL-encoded) -
e— RSA public exponent (Base64URL-encoded)
Key Types
- RSA keys (
kty: "RSA") — currently the only supported type - EC keys (
kty: "EC", P-256/P-384) — not yet implemented - OKP keys (
kty: "OKP", Ed25519) — not yet implemented
Optional Fields
-
x5c— X.509 certificate chain — not included -
x5t— X.509 certificate SHA-1 thumbprint — not included -
x5u— X.509 certificate URL — not included
Key Rotation
- Multiple keys in JWKS endpoint — all active public keys returned
-
kidheader matching — JWT verification selects correct key from the set - Zero-downtime rotation — old tokens remain valid during rotation