Skip to content

Commit 8b50bc2

Browse files
authored
Merge pull request modelcontextprotocol#677 from mcp-auth/feature/support-oidc-discovery-in-auth-spec
feat: enhance auth server discovery with OAuth2 and OIDC metadata support
2 parents 685467c + 79b3dcc commit 8b50bc2

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

docs/specification/draft/basic/authorization.mdx

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,12 @@ while maintaining simplicity:
5050
1. MCP servers **MUST** implement OAuth 2.0 Protected Resource Metadata ([RFC9728](https://datatracker.ietf.org/doc/html/rfc9728)).
5151
MCP clients **MUST** use OAuth 2.0 Protected Resource Metadata for authorization server discovery.
5252

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.
5659

5760
### Roles
5861

@@ -91,11 +94,6 @@ as described in [RFC9728 Section 5.1 "WWW-Authenticate Response"](https://datatr
9194

9295
MCP clients **MUST** be able to parse `WWW-Authenticate` headers and respond appropriately to `HTTP 401 Unauthorized` responses from the MCP server.
9396

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-
9997
#### Sequence Diagram
10098

10199
The following diagram outlines an example flow:
@@ -114,7 +112,11 @@ sequenceDiagram
114112
M-->>C: Resource metadata with authorization server URL
115113
Note over C: Validate RS metadata,<br />build AS metadata URL
116114
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
118120
A-->>C: Authorization server metadata
119121
120122
Note over C,A: OAuth 2.1 authorization flow happens here
@@ -170,7 +172,11 @@ sequenceDiagram
170172
171173
Note over C: Parse metadata and extract authorization server(s)<br/>Client determines AS to use
172174
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
174180
A->>C: Authorization server metadata response
175181
176182
alt Dynamic client registration

0 commit comments

Comments
 (0)