sparse-father-97864
06/09/2024, 10:35 PMchilly-king-10285
06/09/2024, 10:35 PMchilly-king-10285
06/09/2024, 10:36 PMjwks
configuration in the OAuth2 configuration is used to pass the client's JSON Web Key Set (JWK) document by value. This parameter is intended to be used by clients that, for some reason, are unable to use the jwks_uri
parameter, for instance, by native applications that might not have a location to host the contents of the JWK Set. The semantics of the jwks
parameter are the same as the jwks_uri
parameter, other than that the JWK Set is passed by value, rather than by reference. If a client can use jwks_uri
, it must not use jwks
. One significant downside of jwks
is that it does not enable key rotation (which jwks_uri
does, as described in Section 10 of OpenID Connect Core 1.0 [OpenID.Core]). The jwks_uri
and jwks
parameters must not be used together. Here is an example of how to register an RSA public key for an OAuth2 client using the jwks
field: javascript import { Configuration, OAuth2Api } from "@ory/client" const ory = new OAuth2Api( new Configuration({ basePath: `https://${process.env.ORY_PROJECT_SLUG}.<http://projects.oryapis.com|projects.oryapis.com>`, accessToken: process.env.ORY_API_KEY, }), ) export async function createOAuth2Client() { await ory.createOAuth2Client({ oAuth2Client: { token_endpoint_auth_method: "private_key_jwt", token_endpoint_auth_signing_alg: "RS256", // or ES256, EdDSA; ... // ... // define the public key directly: jwks: { keys: [ { kty: "RSA", n: "jL7h5wc-yeMUsHGJHc0xe9SbTdaLKXMHvcIHQck20Ji7SvrHPdTDQTvZtTDS_wJYbeShcCrliHvbJRSZhtEe0mPJpyWg3O_HkKy6_SyHepLK-_BR7HfcXYB6pVJCG3BW-lVMY7gl5sULFA74kNZH50h8hdmyWC9JgOHn0n3YLdaxSWlhctuwNPSwqwzY4qtN7_CZub81SXWpKiwj4UpyB10b8rM8qn35FS1hfsaFCVi0gQpd4vFDgFyqqpmiwq8oMr8RZ2mf0NMKCP3RXnMhy9Yq8O7lgG2t6g1g9noWbzZDUZNc54tv4WGFJ_rJZRz0jE_GR6v5sdqsDTdjFquPlQ", e: "AQAB", use: "sig", kid: "some-key-id", }, ], }, }, }) }
Sources: - [Ory Hydra API - oAuth2](https://www.ory.sh/docs/hydra/reference/api) - [Registering the client's public key](https://www.ory.sh/docs/hydra/guides/jwt#registering-the-clients-public-key)