DEV Community 中文 关注 MCP 客户端难以与 Entra 进行身份验证。以下是解决方案。 使用 AI 和 MCP 的公司通常以简单的 API 密钥进行身份验证。然而,这种方法存在安全隐患,因为密钥以明文形式存储、缺乏过期机制且无法单独撤销。MCP 规范建议使用 OAuth 2.1 以提升安全性。预期的 OAuth 流程涉及动态客户端注册(DCR),即客户端通过粘贴 URL 自动向授权服务器注册。许多身份提供商(如 Entra ID 和 Cloudflare Access)原生不支持 DCR。这迫使采用手动 OAuth 配置,从而削弱了 DCR 的易用性和自助注册特性。此问题被称为"DCR 墙”。mcp-sso 工具作为桥梁解决了这一问题。它模拟 DCR 服务器供 MCP 客户端使用,利用 PKCE 和同意机制促进 OAuth 流程;同时,它与现有的身份提供商(如 Cloudflare Access 或 Entra ID)集成,以验证用户身份并实施策略。随后,mcp-sso 颁发其自身的范围限定令牌,确保身份提供商的令牌不会直接到达客户端。该配置实现了安全且用户友好的体验:客户端只需粘贴 URL 即可连接,而身份验证由公司既有的身份提供商统一管理。该工具已在多个 MCP 客户端和身份提供商上成功测试,证明了其实际应用能力。安全特性包括故障关闭机制、哈希化的一次性代码以及已发布的威胁模型。未来的开发计划包括更广泛的 OIDC 支持以及为流行身份提供商预设配置。 MCP clients can't easily authenticate with Entra. Here's the bridge. dev.to
mcp-sso工具作为桥梁解决了这一问题。它模拟 DCR 服务器供 MCP 客户端使用,利用 PKCE 和同意机制促进 OAuth 流程;同时,它与现有的身份提供商(如 Cloudflare Access 或 Entra ID)集成,以验证用户身份并实施策略。随后,mcp-sso颁发其自身的范围限定令牌,确保身份提供商的令牌不会直接到达客户端。该配置实现了安全且用户友好的体验:客户端只需粘贴 URL 即可连接,而身份验证由公司既有的身份提供商统一管理。该工具已在多个 MCP 客户端和身份提供商上成功测试,证明了其实际应用能力。安全特性包括故障关闭机制、哈希化的一次性代码以及已发布的威胁模型。未来的开发计划包括更广泛的 OIDC 支持以及为流行身份提供商预设配置。