JWKS (JSON Web Key Set)

Also called JWKS, JSON Web Key Set, JWK Set, jwks_uri

ComposedShipped

A JWKS is a public phone book of cryptographic keys, published as plain JSON at a well-known URL, so that anyone who needs to verify a signed token knows exactly which key to check it against, without the issuer ever having to send the key directly to each verifier out-of-band.

A minimal JWKS looks like this:

{
  "keys": [
    { "kty": "OKP", "crv": "Ed25519", "kid": "key-1", "x": "..." }
  ]
}

Each entry describes one public key: its type (kty, e.g. OKP for Edwards-curve keys like Ed25519, or EC for elliptic-curve keys like P-256), its parameters, and a kid (key ID) that a token's header can reference to say "I was signed with this specific key." The kid field is what makes key rotation practical: an issuer can publish a second key alongside the first, start signing new tokens with it, and let old tokens, still verifiable against the first key, still listed in the JWKS, expire naturally, with zero downtime and no verifier ever needing manual reconfiguration. An OpenID Connect provider (see OIDC) advertises where its JWKS lives via the jwks_uri field in its discovery document.

Where it comes from

The JWK format is IETF RFC 7517, from the same 2015 JOSE working group batch that produced JWT, authored principally by Michael B. Jones. The "Set", an array of JWKs under a keys field, and the convention of publishing it at a predictable, discoverable URL come from OpenID Connect Discovery 1.0. Solidus designed none of it; this is one of the more mechanical, purely-composed pieces of the whole stack: there isn't much room for a different implementation to do this differently, and that's the point of a standard.

Solidus today

auth.solidus.network publishes a live JWKS at /.well-known/jwks.json with two active keys: an Ed25519 key that signs ID Tokens, and a P-256 key that signs Solid-OIDC access tokens (two keys because Community Solid Server's token verifier only accepts ES256 or RS256, not EdDSA, see the DPoP entry for the full reason). Both are real, in-use signing keys for a live, public testnet identity provider: there is no mainnet, and this has not been independently audited.

See also

JWT is the token format a JWKS key verifies. OIDC is the protocol that standardizes jwks_uri discovery. Ed25519 / EdDSA is the signature scheme behind Solidus's ID Token key.

Where it comes from

Someone else specified this. Solidus assembles it.

The JSON Web Key (JWK) format is IETF RFC 7517, published May 2015, authored principally by Michael B. Jones (Microsoft) as part of the JOSE working group's output, the same effort that produced JWT (RFC 7519). A JWKS is simply a JSON object holding an array of JWKs under a "keys" field. The convention of publishing one at a predictable `jwks_uri` and advertising that URL in OIDC discovery metadata comes from OpenID Connect Discovery 1.0 (Sakimura, Bradley, Jones, de Medeiros, Jay). Solidus designed none of this; it publishes its own keys in the standard format at a standard location.

How to check this

Running in production today.

curl https://auth.solidus.network/.well-known/jwks.json returns a real, live JWK Set right now: an Ed25519 (OKP) signing key and a P-256 (EC) signing key, each with its own `kid`. No account needed.

Related

JWKS (JSON Web Key Set) · Solidus Lexicon