MCP 服务器企业登录兼容实践

awca22 · reddit · 2026-07-18

作者分享了自己把 MCP 服务器接到企业登录体系里的经验,核心难点是:**MCP 客户端会尝试自动注册 OAuth 客户端**,但很多企业 IdP 并不支持这种动态注册流程。 文章先描述了两个场景: - 个人项目里,MCP 服务器不能直接暴露,因为里面有 OpenRouter key; - 工作中,团队又需要把一个只用 API key 的 MCP 服务暴露给生产中的 AI agent 和同事,但安全规范不允许直接用 key。 他踩到的坑是:Cloudflare Access 不支持 MCP 客户端期望的那套动态客户端注册流程,所以会报 **“Incompatible auth server: does not support dynamic client registration”**。作者解释了 MCP 规范里 DCR 的工作方式,以及为什么 Entra、Okta、Cognito 这类 IdP 往往不会让客户端自注册。 最后他的解决方案是自己在前面加一层 **OAuth bridge**: - 提供 `/.well-known` 元数据; - 处理 DCR 和 PKCE; - 让客户端注册到这层桥接服务; - 再由它对接真正的企业 IdP,并签发短期、受众绑定的 JWT。 这个开源项目叫 **mcp-sso**,已经能和 claude.ai、ChatGPT、Claude Code、Codex CLI 以及官方 MCP SDK 一起工作,并在 Cloudflare Access、Google、Entra 等真实登录环境下测试过。作者还提到,Claude 客户端只有在 metadata 里声明 `client_id_metadata_document_supported: true` 时才会尝试 CIMD,否则会回退到 DCR。

原文链接 →