@@ -50,9 +50,12 @@ while maintaining simplicity:
50
50
1 . MCP servers ** MUST** implement OAuth 2.0 Protected Resource Metadata ([ RFC9728] ( https://datatracker.ietf.org/doc/html/rfc9728 ) ).
51
51
MCP clients ** MUST** use OAuth 2.0 Protected Resource Metadata for authorization server discovery.
52
52
53
- 1 . MCP authorization servers ** MUST** provide OAuth 2.0 Authorization
54
- Server Metadata ([ RFC8414] ( https://datatracker.ietf.org/doc/html/rfc8414 ) ).
55
- MCP clients ** MUST** use the OAuth 2.0 Authorization Server Metadata.
53
+ 1 . MCP authorization servers ** MUST** provide at least one of the following discovery mechanisms:
54
+
55
+ - OAuth 2.0 Authorization Server Metadata ([ RFC8414] ( https://datatracker.ietf.org/doc/html/rfc8414 ) )
56
+ - [ OpenID Connect Discovery 1.0] ( https://openid.net/specs/openid-connect-discovery-1_0-final.html )
57
+
58
+ MCP clients ** MUST** support both discovery mechanisms to obtain the information required to interact with the authorization server.
56
59
57
60
### Roles
58
61
@@ -91,11 +94,6 @@ as described in [RFC9728 Section 5.1 "WWW-Authenticate Response"](https://datatr
91
94
92
95
MCP clients ** MUST** be able to parse ` WWW-Authenticate ` headers and respond appropriately to ` HTTP 401 Unauthorized ` responses from the MCP server.
93
96
94
- #### Server Metadata Discovery
95
-
96
- MCP clients ** MUST** follow the OAuth 2.0 Authorization Server Metadata [ RFC8414] ( https://datatracker.ietf.org/doc/html/rfc8414 )
97
- specification to obtain the information required to interact with the authorization server.
98
-
99
97
#### Sequence Diagram
100
98
101
99
The following diagram outlines an example flow:
@@ -114,7 +112,11 @@ sequenceDiagram
114
112
M-->>C: Resource metadata with authorization server URL
115
113
Note over C: Validate RS metadata,<br />build AS metadata URL
116
114
117
- C->>A: GET /.well-known/oauth-authorization-server
115
+ alt OAuth 2.0 Authorization Server Metadata
116
+ C->>A: GET /.well-known/oauth-authorization-server
117
+ else OpenID Connect Discovery
118
+ C->>A: GET /.well-known/openid-configuration
119
+ end
118
120
A-->>C: Authorization server metadata
119
121
120
122
Note over C,A: OAuth 2.1 authorization flow happens here
@@ -170,7 +172,11 @@ sequenceDiagram
170
172
171
173
Note over C: Parse metadata and extract authorization server(s)<br/>Client determines AS to use
172
174
173
- C->>A: GET /.well-known/oauth-authorization-server
175
+ alt OAuth 2.0 Authorization Server Metadata
176
+ C->>A: GET /.well-known/oauth-authorization-server
177
+ else OpenID Connect Discovery
178
+ C->>A: GET /.well-known/openid-configuration
179
+ end
174
180
A->>C: Authorization server metadata response
175
181
176
182
alt Dynamic client registration
0 commit comments