SEP-1046:在授权中支持 OAuth 客户端凭据流程

SEP-1046:在授权中支持 OAuth 客户端凭据流程

社区译文;来源: MCP 29affa6b

本 SEP 已达到 Final 状态,并作为已接受设计的历史记录保留。 定稿后对协议所做的更改不会反映在此处。权威要求请参阅当前规范 及其变更日志。
字段值
SEP1046
标题在授权中支持 OAuth 客户端凭据流程
状态Final
类型标准跟踪
创建日期2025-07-23
作者Darin McAdams (@D-McAdams )
发起人无
PR#1046

摘要

建议在授权规范中加入 OAuth 客户端凭据流程,以支持机器间场景。

动机

最初的授权规范提到了客户端凭据流程,但后续修订删除了这一内容。因此,当前规范未规定在最终用户无法进行交互式授权的机器间场景中应如何处理。

规范

授权规范将被修订,把 OAuth 客户端凭据流程列为允许使用的流程。按照 OAuth 2.1 已建立的模式,规范将 RECOMMEND 使用 RFC 7523 中定义的非对称方法(JWT 断言;原文此处误作 RFC 753),同时也允许使用客户端密钥。

作为给实现者的指导,规范概览也将更新,以说明不同流程及其适用场景。此外,为回答一个常见问题,规范还将明确指出,实现者可以实现定义范围之外的其他授权场景,并强调规范定义的是基线要求。

理由

为最大限度提高互操作性(并尽量降低 SDK 复杂度),此更改会有意将客户端凭据流程限制为两个选项:

  1. RFC 7523 规定的 JWT 断言(RECOMMENDED)
  2. 通过 HTTP Basic 身份验证使用客户端密钥(为最大限度兼容现有系统而允许)

本提案未纳入 mTLS 等其他选项。

虽然规范鼓励使用 RFC 7523(JWT 断言),但尚未规定如何填充 JWT 内容,也未规定如何发现客户端的 JWKS URI 以验证 JWT。在规范未来的修订中,明确这些内容将会有所帮助。不过,目前仍未作规定,需等待其他能够定义这些配置规范的 RFC 进一步成熟。这些 RFC 包括 WIMSE Headless JWT Authentication(用于规定 JWT 内容)和 Client ID Metadata(用于规定 JWKS URI)。本次修订有意为这些未来配置规范保留扩展空间。实际而言,这意味着需要尽快交付解决方案的实现者很可能会使用目前已得到广泛支持的客户端密钥,而 JWT 断言模式代表更长期的发展方向。

向后兼容性

此更改完全向后兼容。它引入了新的授权流程,但不会改变现有流程。

安全影响

规范引用现有的 OAuth 安全指南。