JWKS Endpoint
How to use the bundle to expose a JWKS endpoint to expose security keys for your platforms and tools.
Configure a JWKS endpoint
A JWKS endpoint may be used to expose security keys components between platforms and tools.
The bundle provides a ready to use route handled by JwksAction, automatically added to your application routes via the associated flex recipe, in file config/routes/lti1p3.yaml
Default route: [GET] /lti1p3/.well-known/jwks/{keySetName}.json
Configuration example:
# config/packages/lti1p3.yaml
lti1p3:
key_chains:
platformKey1:
key_set_name: "platformSet"
public_key: "file://%kernel.project_dir%/config/secrets/dev/platform/public1.key"
private_key: "file://%kernel.project_dir%/config/secrets/dev/platform/private1.key"
private_key_passphrase: ~
platformKey2:
key_set_name: "platformSet"
public_key: "file://%kernel.project_dir%/config/secrets/dev/platform/public2.key"
private_key: "file://%kernel.project_dir%/config/secrets/dev/platform/private2.key"
private_key_passphrase: ~
toolKey1:
key_set_name: "toolSet"
public_key: "file://%kernel.project_dir%/config/secrets/dev/tool/public1.key"
private_key: "file://%kernel.project_dir%/config/secrets/dev/tool/private1.key"
private_key_passphrase: ~
toolKey2:
key_set_name: "toolSet"
public_key: "file://%kernel.project_dir%/config/secrets/dev/tool/public2.key"
private_key: "file://%kernel.project_dir%/config/secrets/dev/tool/private2.key"
private_key_passphrase: ~
...
platforms:
localPlatform:
name: "Local platform"
audience: "http://localhost/platform"
oidc_authentication_url: "http://localhost/lti1p3/oidc/authentication"
oauth2_access_token_url: "http://localhost/lti1p3/auth/platformKey/token"
localTool:
name: "Local tool"
audience: "http://localhost/tool"
oidc_initiation_url: "http://localhost/lti1p3/oidc/initiation"
launch_url: ~
deep_linking_url: ~
...
registrations:
local:
client_id: "client_id"
platform: "localPlatform"
tool: "localTool"
deployment_ids:
- "deploymentId1"
platform_key_chain: "platformKey"
tool_key_chain: "toolKey"
platform_jwks_url: "http://localhost/lti1p3/.well-known/jwks/platformSet.json"
tool_jwks_url: "http://localhost/lti1p3/.well-known/jwks/toolSet.json"
Notes:
- the dynamic route
[GET] /lti1p3/.well-known/jwks/{keySetName}.json
expects a key set name, likeplatformSet
ortoolSet
, to group key chains and expose their JWK as JWKS - you can then declare in a registration involving your platform
localPlatform
that theplatform_jwks_url
will behttp://localhost/lti1p3/.well-known/jwks/platformSet.json
: it will expose the keys for the set nameplatformSet
- you can then declare in a registration involving your tool
localTool
that thetool_jwks_url
will behttp://localhost/lti1p3/.well-known/jwks/toolSet.json
: it will expose the keys for the set nametoolSet