Token Exchange — Configuration

Step 3 of the connection wizard asks for exactly two things: your identity provider's JWKS URI and its Issuer URI. Both come straight from your IdP's OIDC discovery document, so in most cases this is a copy-paste job.

This page applies only to connections using the Token Exchange identity model.

Before you start

Complete Step 2 — Domain verification first. Provisioning refuses to run until it passes:

Verify the connection's domain before provisioning

The two fields

Go to Dashboard → Connections → your connection → Onboarding → Step 3 · Identity setup.

FieldWhat it isExample
JWKS URIWhere your IdP publishes the public keys used to verify its tokenshttps://auth.acme.com/.well-known/jwks.json
Issuer URIThe iss value your IdP stamps into tokens it issueshttps://auth.acme.com

Click Save when both are filled in.

Finding these values

Nearly every OIDC provider serves a discovery document at:

https://<your-idp-domain>/.well-known/openid-configuration

Open it and read two fields:

json
{
  "issuer": "https://auth.acme.com",
  "jwks_uri": "https://auth.acme.com/.well-known/jwks.json"
}

Copy issuer into Issuer URI and jwks_uri into JWKS URI.

Common provider paths, if you'd rather go straight there:

ProviderDiscovery document
Oktahttps://<org>.okta.com/oauth2/default/.well-known/openid-configuration
Auth0https://<tenant>.auth0.com/.well-known/openid-configuration
Microsoft Entra IDhttps://login.microsoftonline.com/<tenant-id>/v2.0/.well-known/openid-configuration
Keycloakhttps://<host>/realms/<realm>/.well-known/openid-configuration

Requirements

RequirementWhy
Both URLs must be HTTPSKeys fetched over plain HTTP can be tampered with in transit.
The JWKS URI must be publicly reachableLockMCP fetches it from its own servers, not from your users' browsers. An IdP behind a VPN or IP allowlist won't work unless LockMCP's egress is permitted.
The Issuer URI must match your tokens exactlyIssuer comparison is an exact string match. https://auth.acme.com and https://auth.acme.com/ are different values — copy it verbatim from the discovery document rather than typing it.

Trailing slashes are the single most common configuration mistake here. Copy the issuer value exactly as your discovery document reports it.

Step 4 — Provision

With both fields saved and the domain verified, run Provision. If either field is missing you'll get:

Configure the JWKS URI and Issuer URI before provisioning

Provisioning creates the identity resources this connection needs. Each is namespaced to your tenant and connection, so connections never share identity configuration:

ResourcePurpose
Connection application clientRepresents this connection. Browser sign-in flow is disabled — see the caveat on the overview.
Gateway clientThe internal service identity LockMCP uses when brokering tokens for this connection.
RolesThe standard mcp-admin and mcp-user roles, used by Roles and Permissions.
Claims scopeAdds the user's roles, tenant and permissions to issued tokens, so the data plane can make authorization decisions without extra lookups.
Identity provider registrationYour IdP, registered from the JWKS and Issuer URIs you supplied.

If provisioning succeeds but sign-in doesn't work

The identity-provider registration step is non-fatal. If it fails — unreachable JWKS URI, malformed issuer, a transient network problem — provisioning still reports success and moves the connection to Provisioned, logging a warning rather than stopping.

That's deliberate (a transient IdP outage shouldn't roll back an otherwise good provision), but it means a green Step 4 doesn't by itself prove your IdP registered correctly. If users can't sign in afterwards, re-check both URLs and re-run provisioning — it's idempotent and safe to repeat. See Troubleshooting.

Step 5 — Activate

Activation flips the connection live. Until then the data plane won't serve tools for it, even with provisioning complete.

Rotating keys and changing IdPs

Your JWKS URI is read when the identity provider is registered, not on every request — but standard key rotation needs no action from you, as long as you keep publishing keys at the same JWKS URI and rotate in the normal overlapping way (publish the new key before retiring the old one).

You do need to re-run provisioning if you change the URL itself, or move to a different IdP or issuer. Update the fields in Step 3, save, and provision again.

Where to go next