io.modelcontextprotocol/enterprise-managed-authorization)使组织能够通过现有的身份提供商 (IdP) 集中控制 MCP 服务器访问。组织的 IT 或安全团队可以在一个地方管理访问策略,而不是让每位员工单独授权每个 MCP 服务器。
规范
Enterprise-Managed Authorization 扩展的完整技术规范。
是什么
在标准的 MCP 部署中,每个用户独立授权 MCP 客户端访问每个 MCP 服务器。对于消费者应用程序,这种用户驱动的模式是理想的——它让个人控制谁可以访问他们的数据。 在企业环境中,这种模式会产生摩擦和安全漏洞:- 员工不需要了解其组织使用的每个 MCP 服务器的授权细节
- 如果每个用户独立授权,安全团队无法执行一致的访问策略
- 入职新员工需要他们手动授权数十项服务
- 离职需要在每项服务中单独撤销访问权限
何时使用
在以下情况下使用 Enterprise-Managed Authorization:- 在企业环境中部署 MCP,其中 IT 管理所有业务应用程序的访问权限
- 执行组织访问策略——你需要确保只有授权员工才能访问特定的 MCP 服务器
- 集中访问控制——你希望从单个管理控制台添加或撤销对 MCP 服务器的访问权限
- 满足合规性要求——你的组织需要所有 MCP 服务器访问的可审计授权轨迹
- 简化员工体验——员工应使用现有的企业 SSO 凭据访问 MCP 工具,无需每个服务的授权流程
工作原理
该扩展建立了一个委托授权流程,其中企业 IdP 充当 MCP 客户端和 MCP 服务器之间的中介。MCP 客户端向企业 IdP 请求一种特殊类型的令牌,称为身份断言 JWT 授权授予(Identity Assertion JWT Authorization Grant),简称 ID-JAG。然后,MCP 客户端将 ID-JAG 交换为来自 MCP 服务器授权服务器的访问令牌: 流程的关键方面:- 集中策略:企业 IdP 维护已批准的 MCP 服务器注册表及每个服务器的访问策略。管理员在其现有的身份管理工具中配置这些内容。
- 单点登录:员工使用企业凭据进行一次身份验证。IdP 颁发令牌,授予对已批准 MCP 服务器的访问权限,无需额外的每服务器授权提示。
- 策略执行:IdP 在颁发令牌之前评估访问策略(组成员资格、角色分配、条件访问规则)。缺乏授权的员工将收到适当的错误——MCP 客户端永远不会收到未授权服务器的令牌。
- 集中撤销:撤销员工对 MCP 服务器的访问权限发生在 IdP 级别,立即在所有 MCP 客户端生效。无需每客户端、每服务器撤销。
实施指南
对于 MCP 客户端
要支持 Enterprise-Managed Authorization,你的客户端必须:- 在
initialize请求中声明支持:
- 支持 SSO —— 用户应使用企业 IdP 向 MCP 客户端进行身份验证。保存登录期间颁发的身份断言(OpenID ID 令牌或 SAML 断言)以供后续使用。
- 处理 ID-JAG —— 当服务器指示需要企业托管授权时,使用之前获得的身份断言向企业 IdP 的授权端点请求 ID-JAG 令牌。将此 ID-JAG 交换为来自 MCP 授权服务器的访问令牌。不要将用户重定向到 MCP 授权服务器的授权端点。
- 支持组织配置 —— 允许管理员配置企业 IdP 的端点,通常通过组织级设置而不是每用户设置。
- 尊重令牌范围 —— 企业 IdP 颁发的令牌可能具有与标准 MCP 授权不同的范围限制。优雅地处理范围错误。
对于 MCP 服务器
要要求企业托管授权:- 在服务器的授权元数据中声明扩展,指示客户端必须使用企业托管流程。
- 与 IdP 管理 API 集成(可选)—— 发布服务器的资源描述符,以便企业管理员可以在其 IdP 管理控制台中配置访问策略。
对于 MCP 授权服务器
- 验证企业 IdP 颁发的 ID-JAG。这通常意味着针对 IdP 的 JWKS 端点验证 JWT 签名,并检查令牌的受众、颁发者和过期时间。
- 将 IdP 声明映射到权限 —— ID-JAG 令牌携带声明(范围和资源信息),你的服务器使用这些声明来确定员工是谁以及员工可以访问什么。基于这些声明定义你的授权逻辑。
- 处理账户链接 - ID-JAG 令牌将始终包含主题声明,并且可能另外包含一个可用于
客户端支持
对此扩展的支持因客户端而异。扩展是可选的,默认情况下从不激活。
相关资源
ext-auth 仓库
源代码和参考实现
完整规范
带有规范性要求的技术规范
SEP-990
原始提案:启用企业 IdP 策略控制
MCP 授权
核心 MCP 授权规范