Flow 1
Discover an OP
- 1
Start from an issuer (IdP URL or from PRM/AS metadata).
- 2
GET openid-configuration. If that fails, MCP also tries RFC 8414 paths.
- 3
Reject issuer mismatch. Cache JWKS from jwks_uri.
OIDF · Final (errata updates ongoing)
OpenID.Discovery
Runtime discovery of 'where does this user authenticate' is mandatory once agents use many IdPs.
At a glance
Actors
01
Relying parties need to discover OP endpoints and capabilities from an issuer URL. Runtime discovery of 'where does this user authenticate' is mandatory once agents use many IdPs. MCP clients must support this in addition to RFC 8414.
02
Issuer URL comparison is exact. A document that lies about issuer is an attack. Path insertion/append variants exist; implement the ones MCP requires so you do not miss a multi-tenant OP.
03
GET {issuer}/.well-known/openid-configuration (with path insertion/append variants). Validate issuer. Use authorization_endpoint, token_endpoint, jwks_uri, userinfo_endpoint, id_token_signing_alg_values_supported, etc.
04
Flow 1
Start from an issuer (IdP URL or from PRM/AS metadata).
GET openid-configuration. If that fails, MCP also tries RFC 8414 paths.
Reject issuer mismatch. Cache JWKS from jwks_uri.
05
Discovery for the identity layer, parallel to RFC 8414. Some OPs publish both documents; they should agree on issuer.
06
How you use the endpoints you discovered.
OAuth-only ASes may only have 8414. MCP requires both client-side.
MUST support both discovery mechanisms.
07
https://issuer.example/tenant is not https://issuer.example/tenant/. Implement the spec's path rules.
08
OIDF Final (errata updates ongoing). Stable. https://openid.net/specs/openid-connect-discovery-1_0.html
Issuer URL comparison is exact. A document that lies about issuer is an attack.