You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: specification/draft/workload-identity-federation.mdx
+38-21Lines changed: 38 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -80,25 +80,32 @@ specific JWT issuers and rules determining which workload identities are
80
80
authorized to receive access tokens.
81
81
82
82
### Message Flow
83
-
The message flow combines using a JWT as an authorization grant as define in [RFC7523](https://datatracker.ietf.org/doc/html/rfc7523) with retrieving a [RFC7517](https://datatracker.ietf.org/doc/html/rfc7517) JWK Key set from a TLS secured URI
83
+
The message flow combines using a JWT as an authorization grant as defined in [RFC7523](https://datatracker.ietf.org/doc/html/rfc7523) with retrieving a [RFC7517](https://datatracker.ietf.org/doc/html/rfc7517) JWK Key set from a TLS secured URI
84
84
85
85
The complete Workload Identity Federation flow proceeds as follows:
86
86
87
-
```
88
87
```mermaid
89
88
sequenceDiagram
90
89
participant Client as MCP Client
91
-
participant Auth as Authorization Server
90
+
participant Auth as Authorization<br/>Server
91
+
participant OIDC as OIDC<br/>Discovery<br/>Endpoint
92
+
participant JWKS_URI as JWK Set<br/>Location
92
93
participant Server as MCP Server
93
94
94
95
Client->>Auth: 1. Request Access Token
95
-
Note over Auth: 2. Determine Issuer Key Location
96
-
Note over Auth: 3. Obtain Issuer Keys
97
-
Note over Auth: 4. Validate JWT
98
-
Auth->>Client: 5. Return Access Token
99
-
Client->>Server: 6. MCP Server Access
100
-
Note over Server: 7. Validate Access Token
101
-
Server->>Client: 8. MCP Server Response
96
+
Note over Auth: 2. Construct OpenID Provider Discovery Endpoint URL
1.**Request Access Token**: The MCP client makes a POST request to the authorization
@@ -110,29 +117,39 @@ sequenceDiagram
110
117
-`resource`: The canonical URI of the target MCP server (as defined in the
111
118
baseline MCP Authorization specification)
112
119
113
-
2. **Determine Issuer Key Location**: The authorization server extracts the `iss` (issuer)
114
-
claim from the JWT and determine if it is a trusted issuer. If it trusts the
115
-
issuer, it MUST determine the location from which to retrieve the RFC7517 JWK key
116
-
set based on the `iss` claim. The JWK key set location MUST be a TLS protected
117
-
URI. The authorization server MUST maintain a mapping between an issuer and the location of its JWK key set through manual configuration.
120
+
2.**Construct OpenID Provider Discovery Endpoint URL**: The authorization server extracts the `iss` (issuer)
121
+
claim from the JWT and determines if it is a trusted issuer. If the issuer is
122
+
trusted, the authorization server constructs the OpenID Provider Discovery Endpoint URL from the issuer
123
+
claim as defined in Section 4 of [OpenID Connect Discovery 1.0](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig).
124
+
125
+
3.**Request OpenID Provider Configuration Document**: The authorization server requests the OpenID Provider Configuration Document
126
+
using the URL constructed in Step 2 as described in Section 4.1 of [OpenID Connect Discovery 1.0](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationRequest).
127
+
128
+
4.**Return OpenID Provider Configuration Document** The OpenID Provider Configuration Document is returned as described in Section 4.2 of [OpenID Connect Discovery 1.0](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse).
129
+
130
+
5.**Extrack jwks_uri**: The authorization server validates the OpenID Provider Configuration Document as
131
+
described in Section 4.3 of [OpenID Connect Discovery 1.0](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationValidation) and extracts the 'jwks_uri' configuration information.
132
+
133
+
6.**Request JWK Set**: The authorization server retrieves the
134
+
[RFC7517](https://datatracker.ietf.org/doc/html/rfc7517) JWK set
135
+
containing the issuer's public keys from the TLS protected location specified by
136
+
'jwks_uri' configuration information.
118
137
119
-
3. **Obtain Issuer Keys**: The authorization server retrieves the JWK key set
120
-
containing the issuer's public keys from the TLS protected location specified in
121
-
the issuer's configuration document.
138
+
7.**Return JWK Set**: The JWK set is returned from the TLS protected location.
122
139
123
-
4. **Validate JWT**: The authorization server validates the JWT according to
140
+
8.**Validate JWT**: The authorization server validates the JWT according to
0 commit comments