🚧 Roadmap — 本页描述的能力尚在路线图中,概念与设计已定型,接口与操作步骤以正式发布为准。
给你的 MCP Server 加授权
MCP 规范(2025-06-18 版)明确将 MCP Server 定位为 OAuth 2.1 资源服务器(resource server),并要求授权服务器独立在外:MCP Server 自己不签发令牌、不管理用户、不做授权确认——规范假设你已经有一个专业的授权服务器。GenAuth 就是那个授权服务器。
这个定位不是一开始就有的:2025-03 版规范曾允许 MCP Server 兼任授权服务器,社区实践否定了这条路,2025-06-18 版正式把资源服务器与授权服务器拆开。"独立、专业的授权服务器"从可选项变成了规范的默认假设。
对 Agent Identity 来说,这件事还有一层含义:MCP Client 背后通常是一个 Agent。 授权流程走 GenAuth,意味着 MCP 工具调用进入委托体系——每个令牌都答得出"谁授权、以谁的身份、能做什么",并且可审计、可吊销。
授权流程:8 步,每步一个责任方
以下为概念形态流程,与 MCP 规范的授权章节逐步对齐;GenAuth 侧的端点与注册入口以正式发布为准,本页不虚构。
前置 · 登记受保护资源(责任方:你的应用 × GenAuth) 把 MCP Server 声明为 GenAuth 中的受保护资源,定义它对外暴露的 scope 词汇——后续每一步的"授权范围"都以这份词汇为语言。
1 · 无令牌请求,401 亮出线索(责任方:MCP Server | RFC 9728) MCP Client 首次调用未携带(或携带无效)访问令牌,MCP Server 返回 401 Unauthorized,并在 WWW-Authenticate 头中给出其受保护资源元数据的位置。
2 · 发现授权服务器(责任方:MCP Client | RFC 9728) MCP Client 读取受保护资源元数据,从中得知这台 MCP Server 信任的授权服务器是谁——即 GenAuth。
3 · 读取授权服务器元数据(责任方:MCP Client,元数据由 GenAuth 提供 | RFC 8414) MCP Client 获取 GenAuth 的授权服务器元数据:授权端点、令牌端点、支持的能力声明,为后续流程定位所有入口。
4 · 动态注册为 OAuth 客户端(责任方:MCP Client × GenAuth | RFC 7591) MCP Client 动态注册成为 GenAuth 的 OAuth 客户端。规范推荐(SHOULD)支持动态注册,以便 Client 无需人工介入即可接入;不支持动态注册的部署可退化为预注册。
5 · 授权码 + PKCE,人完成授权确认(责任方:MCP Client 发起 × GenAuth 主持 | OAuth 2.1,PKCE 必选) MCP Client 发起授权码流程,用户(或组织管理员,见授权确认与审批)在 GenAuth 的授权确认(Consent)页完成确认。这一步是委托世界观的落点:确认页上的 scope 就是人显式让渡的权限切片。PKCE 在 OAuth 2.1 中为必选(吸收自 RFC 7636),拦截授权码注入。
6 · 换令牌,audience 钉死(责任方:MCP Client × GenAuth | OAuth 2.1 + RFC 8707) MCP Client 用授权码换取访问令牌。规范要求以 resource 参数(RFC 8707)声明令牌的目标资源——令牌被绑定到这一台 MCP Server,拿到别处无效,从签发侧堵住令牌挪用。
7 · 携令牌调用,资源侧校验(责任方:MCP Server) MCP Client 携访问令牌调用工具。MCP Server 作为资源服务器校验签名、audience 与 scope,只放行授权范围内的调用。规范在安全考量中明令禁止 token passthrough——MCP Server 不得把收到的令牌透传给下游冒用,这正是混淆代理(confused deputy)的经典入口(另见安全考量)。资源侧校验的通用清单见保护你的 API。
8 · 下游访问、留痕与收权(责任方:MCP Server × 你的应用 × GenAuth) MCP Server 需要访问你的应用或下游资源时,以自己的受限上下文按需申请下游令牌(委托与兑换语义见委托令牌与缩权),而不是透传上游令牌。全程调用留在审计链上(审计与追责链),出事时按吊销与应急处置一键收权。
一张表收拢标准
| 流程环节 | 标准 | 它管什么 |
|---|---|---|
| 资源元数据与 AS 发现(步 1–2) | RFC 9728 | MCP Server 如何声明"我的授权服务器是谁" |
| 授权服务器元数据(步 3) | RFC 8414 | Client 如何发现 GenAuth 的端点与能力 |
| 动态客户端注册(步 4) | RFC 7591 | Client 免人工接入 |
| 授权码 + PKCE(步 5–6) | OAuth 2.1 | 授权主流程;PKCE 必选 |
| 令牌目标绑定(步 6) | RFC 8707 | 令牌钉死在目标 MCP Server 上 |
欢迎反馈
MCP Server 授权是路线图能力。如果你正在给 MCP Server 选授权方案,欢迎告诉我们你的场景:MCP Server 部署在哪、面向内部员工还是外部用户、需要什么粒度的 scope——真实场景直接决定这条路线的排期与形态。
下一步
- 指南:保护你的 API:资源侧集成 —— 资源服务器怎么校验 sub / act / scope
- 概念:委托令牌与缩权 —— 令牌背后的委托与缩权机制
- 参考:安全考量 —— 混淆代理与令牌窃取的威胁模型