Skip to main content
企业托管授权扩展(io.modelcontextprotocol/enterprise-managed-authorization)让组织能够通过现有身份提供商(IdP)集中控制 MCP 服务器访问。员工不再需要逐个授权每个 MCP 服务器,组织的 IT 或安全团队可以在一个位置管理访问策略。

Specification

企业托管授权扩展的完整技术规范。

它是什么

在标准 MCP 部署中,每个用户会独立授权 MCP 客户端访问每个 MCP 服务器。对于消费者应用,这种用户驱动模型很理想,因为它让个人控制谁能访问自己的数据。 但在企业环境中,这种模型会带来使用阻力和安全缺口:
  • 员工不应需要理解组织使用的每个 MCP 服务器的授权细节
  • 如果每个用户独立授权,安全团队就无法强制执行一致的访问策略
  • 新员工入职时,需要手动授权数十个服务
  • 员工离职时,需要逐个服务撤销访问权限
企业托管授权通过引入组织的 IdP 作为权威决策方来解决这些问题。IdP(例如 Okta、Azure AD 或企业 SSO 系统)控制员工可以访问哪些 MCP 服务器,以及在什么条件下访问。员工使用企业身份认证,也就是他们访问邮箱、Slack 和其他工作工具时使用的同一套凭据;IdP 则根据组织策略授予或拒绝 MCP 服务器访问。

何时使用

以下场景适合使用企业托管授权:
  • 在企业环境中部署 MCP,由 IT 管理所有业务应用的访问
  • 强制执行组织访问策略,需要确保只有获授权员工才能访问特定 MCP 服务器
  • 集中访问控制,希望从单个管理控制台为 MCP 服务器添加或撤销访问权限
  • 满足合规要求,组织需要为所有 MCP 服务器访问保留可审计的授权轨迹
  • 简化员工体验,员工应使用现有企业 SSO 凭据访问 MCP tools,而不需要逐服务授权流程

工作原理

该扩展建立了一个委托授权流程,企业 IdP 作为 MCP 客户端和 MCP 服务器之间的中介。MCP Client 会向企业 IdP 请求一种特殊 token,称为 Identity Assertion JWT Authorization Grant,简称 ID-JAG。随后 MCP Client 使用 ID-JAG 向 MCP 服务器的 Authorization Server 换取 access token: 该流程的关键点:
  1. 集中策略:企业 IdP 维护已批准 MCP 服务器的注册表,以及每个服务器的访问策略。管理员在现有身份管理工具中配置这些内容。
  2. 单点登录:员工只需使用企业凭据认证一次。IdP 会签发 token,允许访问已批准的 MCP 服务器,而无需为每个服务器额外显示授权提示。
  3. 策略执行:IdP 在签发 token 前评估访问策略(组成员身份、角色分配、条件访问规则)。没有授权的员工会收到相应错误,MCP 客户端永远不会获得未授权服务器的 token。
  4. 集中撤销:撤销员工对 MCP 服务器的访问权限会在 IdP 层完成,并立即对所有 MCP 客户端生效。不需要按客户端、按服务器逐个撤销。

实现指南

面向 MCP 客户端

要支持企业托管授权,客户端必须:
  1. initialize 请求中声明支持
{
  "capabilities": {
    "extensions": {
      "io.modelcontextprotocol/enterprise-managed-authorization": {}
    }
  }
}
  1. 支持 SSO:用户应使用企业 IdP 向 MCP Client 认证。保存登录期间签发的 Identity Assertion(OpenID ID Token 或 SAML assertion),以便后续使用。
  2. 处理 ID-JAG:当服务器表明需要企业托管认证时,使用之前获取的 Identity Assertion,向企业 IdP 的 authorization endpoint 请求 ID-JAG token。再使用该 ID-JAG 向 MCP Authorization Server 换取 access token。不要将用户重定向到 MCP Authorization Server 的 authorization endpoint。
  3. 支持组织配置:允许管理员配置企业 IdP 的端点,通常通过组织级设置而不是用户级设置完成。
  4. 遵守 token scopes:企业 IdP 签发的 token 可能带有不同于标准 MCP 授权的 scope 限制。应妥善处理 scope 错误。

面向 MCP 服务器

要要求使用企业托管授权:
  1. 在服务器的授权元数据中声明该扩展,表明客户端必须使用企业托管流程。
  2. 集成 IdP 管理 API(可选):发布服务器的 resource descriptor,让企业管理员能够在其 IdP 管理控制台中配置访问策略。

面向 MCP Authorization Server

  1. 验证 ID-JAG:验证企业 IdP 签发的 ID-JAG。通常需要根据 IdP 的 JWKS 端点验证 JWT 签名,并检查 token 的 audience、issuer 和过期时间。
  2. 将 IdP claims 映射到权限:ID-JAG token 携带 claims(scope 和 resource 信息),服务器用这些信息判断员工是谁以及可以访问什么。请基于这些 claims 定义授权逻辑。
  3. 处理账号关联:ID-JAG token 总会包含 subject claim,也可能额外包含可用于账号关联的 email claim

客户端支持

不同客户端对此扩展的支持情况不同。扩展需要显式启用,默认永远不会激活。
请查看客户端矩阵,了解各 MCP 客户端当前的实现状态。企业托管授权通常不仅需要 MCP 客户端应用支持,还需要组织 IT 团队在客户端层面提供支持。

相关资源

ext-auth 仓库

源代码和参考实现

完整规范

包含规范性要求的技术规范

SEP-990

原始提案:启用企业 IdP 策略控制

MCP Authorization

MCP 核心授权规范