Skip to content

Commit c58abcf

Browse files
authored
Merge pull request modelcontextprotocol#852 from Hitachi/20250618-referred-oauth-2-1-version-expired
[2025-06-18 ver] Referred OAuth 2.1 spec version expired
2 parents 1975d52 + bacd914 commit c58abcf

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

docs/specification/2025-06-18/basic/authorization.mdx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ This authorization mechanism is based on established specifications listed below
3030
implements a selected subset of their features to ensure security and interoperability
3131
while maintaining simplicity:
3232

33-
- OAuth 2.1 IETF DRAFT ([draft-ietf-oauth-v2-1-12](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12))
33+
- OAuth 2.1 IETF DRAFT ([draft-ietf-oauth-v2-1-13](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13))
3434
- OAuth 2.0 Authorization Server Metadata
3535
([RFC8414](https://datatracker.ietf.org/doc/html/rfc8414))
3636
- OAuth 2.0 Dynamic Client Registration Protocol
@@ -41,10 +41,10 @@ while maintaining simplicity:
4141

4242
### Roles
4343

44-
A protected _MCP server_ acts as an [OAuth 2.1 resource server](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-12.html#name-roles),
44+
A protected _MCP server_ acts as an [OAuth 2.1 resource server](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-13.html#name-roles),
4545
capable of accepting and responding to protected resource requests using access tokens.
4646

47-
An _MCP client_ acts as an [OAuth 2.1 client](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-12.html#name-roles),
47+
An _MCP client_ acts as an [OAuth 2.1 client](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-13.html#name-roles),
4848
making protected resource requests on behalf of a resource owner.
4949

5050
The _authorization server_ is responsible for interacting with the user (if necessary) and issuing access tokens for use at the MCP server.
@@ -235,11 +235,11 @@ MCP clients **MUST** send this parameter regardless of whether authorization ser
235235
#### Token Requirements
236236

237237
Access token handling when making requests to MCP servers **MUST** conform to the requirements defined in
238-
[OAuth 2.1 Section 5 "Resource Requests"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-5).
238+
[OAuth 2.1 Section 5 "Resource Requests"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-5).
239239
Specifically:
240240

241241
1. MCP client **MUST** use the Authorization request header field defined in
242-
[OAuth 2.1 Section 5.1.1](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-5.1.1):
242+
[OAuth 2.1 Section 5.1.1](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-5.1.1):
243243

244244
```
245245
Authorization: Bearer <access-token>
@@ -261,11 +261,11 @@ Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
261261
#### Token Handling
262262

263263
MCP servers, acting in their role as an OAuth 2.1 resource server, **MUST** validate access tokens as described in
264-
[OAuth 2.1 Section 5.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-5.2).
264+
[OAuth 2.1 Section 5.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-5.2).
265265
MCP servers **MUST** validate that access tokens were issued specifically for them as the intended audience,
266266
according to [RFC 8707 Section 2](https://www.rfc-editor.org/rfc/rfc8707.html#section-2).
267267
If validation fails, servers **MUST** respond according to
268-
[OAuth 2.1 Section 5.3](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-5.3)
268+
[OAuth 2.1 Section 5.3](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-5.3)
269269
error handling requirements. Invalid or expired tokens **MUST** receive a HTTP 401
270270
response.
271271

@@ -288,7 +288,7 @@ Servers **MUST** return appropriate HTTP status codes for authorization errors:
288288

289289
## Security Considerations
290290

291-
Implementations **MUST** follow OAuth 2.1 security best practices as laid out in [OAuth 2.1 Section 7. "Security Considerations"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#name-security-considerations).
291+
Implementations **MUST** follow OAuth 2.1 security best practices as laid out in [OAuth 2.1 Section 7. "Security Considerations"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#name-security-considerations).
292292

293293
### Token Audience Binding and Validation
294294

@@ -307,14 +307,14 @@ Attackers who obtain tokens stored by the client, or tokens cached or logged on
307307
requests that appear legitimate to resource servers.
308308

309309
Clients and servers **MUST** implement secure token storage and follow OAuth best practices,
310-
as outlined in [OAuth 2.1, Section 7.1](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-7.1).
310+
as outlined in [OAuth 2.1, Section 7.1](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-7.1).
311311

312312
Authorization servers **SHOULD** issue short-lived access tokens to reduce the impact of leaked tokens.
313-
For public clients, authorization servers **MUST** rotate refresh tokens as described in [OAuth 2.1 Section 4.3.1 "Refresh Token Grant"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-4.3.1).
313+
For public clients, authorization servers **MUST** rotate refresh tokens as described in [OAuth 2.1 Section 4.3.1 "Token Endpoint Extension"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-4.3.1).
314314

315315
### Communication Security
316316

317-
Implementations **MUST** follow [OAuth 2.1 Section 1.5 "Communication Security"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-1.5).
317+
Implementations **MUST** follow [OAuth 2.1 Section 1.5 "Communication Security"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-1.5).
318318

319319
Specifically:
320320

@@ -324,9 +324,9 @@ Specifically:
324324
### Authorization Code Protection
325325

326326
An attacker who has gained access to an authorization code contained in an authorization response can try to redeem the authorization code for an access token or otherwise make use of the authorization code.
327-
(Further described in [OAuth 2.1 Section 7.5](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-7.5))
327+
(Further described in [OAuth 2.1 Section 7.5](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-7.5))
328328

329-
To mitigate this, MCP clients **MUST** implement PKCE according to [OAuth 2.1 Section 7.5.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-7.5.2).
329+
To mitigate this, MCP clients **MUST** implement PKCE according to [OAuth 2.1 Section 7.5.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-7.5.2).
330330
PKCE helps prevent authorization code interception and injection attacks by requiring clients to create a secret verifier-challenge pair, ensuring that only the original requestor can exchange an authorization code for tokens.
331331

332332
### Open Redirection
@@ -340,7 +340,7 @@ Authorization servers **MUST** validate exact redirect URIs against pre-register
340340
MCP clients **SHOULD** use and verify state parameters in the authorization code flow
341341
and discard any results that do not include or have a mismatch with the original state.
342342

343-
Authorization servers **MUST** take precautions to prevent redirecting user agents to untrusted URI's, following suggestions laid out in [OAuth 2.1 Section 7.12.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#section-7.12.2)
343+
Authorization servers **MUST** take precautions to prevent redirecting user agents to untrusted URI's, following suggestions laid out in [OAuth 2.1 Section 7.12.2](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-13#section-7.12.2)
344344

345345
Authorization servers **SHOULD** only automatically redirect the user agent if it trusts the redirection URI. If the URI is not trusted, the authorization server MAY inform the user and rely on the user to make the correct decision.
346346

@@ -363,7 +363,7 @@ This vulnerability has two critical dimensions:
363363

364364
MCP servers **MUST** validate access tokens before processing the request, ensuring the access token is issued specifically for the MCP server, and take all necessary steps to ensure no data is returned to unauthorized parties.
365365

366-
A MCP server **MUST** follow the guidelines in [OAuth 2.1 - Section 5.2](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-12.html#section-5.2) to validate inbound tokens.
366+
A MCP server **MUST** follow the guidelines in [OAuth 2.1 - Section 5.2](https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-13.html#section-5.2) to validate inbound tokens.
367367

368368
MCP servers **MUST** only accept tokens specifically intended for themselves and **MUST** reject tokens that do not include them in the audience claim or otherwise verify that they are the intended recipient of the token. See the [Security Best Practices Token Passthrough section](/specification/2025-06-18/basic/security_best_practices#token-passthrough) for details.
369369

0 commit comments

Comments
 (0)