[ PROMPT_NODE_24724 ]
oauth-proxy
[ SKILL_DOCUMENTATION ]
# OAuth 代理
> 将传统 OAuth 提供商与 MCP 的身份验证工作流无缝集成。
OAuth 代理使 FastMCP 智能体服务器能够与**不支持动态客户端注册 (DCR)** 的 OAuth 提供商进行身份验证。这几乎涵盖了所有传统的 OAuth 提供商:GitHub、Google、Azure、AWS、Discord、Facebook 以及大多数企业身份系统。对于支持 DCR 的提供商(如 Descope 和 WorkOS AuthKit),请改用 `RemoteAuthProvider`。
MCP 客户端期望自动注册并即时获取凭据,但传统提供商要求通过其开发者控制台手动注册应用程序。OAuth 代理通过向 MCP 客户端提供兼容 DCR 的接口,同时使用您在上游提供商处预注册的凭据来弥补这一差距。当客户端尝试注册时,代理会返回您固定的凭据。当客户端发起授权时,代理会处理回调转发的复杂性——存储客户端的动态回调 URL,使用其自身的固定回调与提供商通信,然后在令牌交换后转发回客户端。
这种方法使任何 MCP 客户端(无论是使用随机本地主机端口还是像 Claude.ai 这样的固定 URL)都能与任何传统 OAuth 提供商进行身份验证,同时保持完整的 OAuth 2.1 和 PKCE 安全性。
> **注意:** 对于支持 OIDC 发现的提供商(Auth0、配置了 OIDC 的 Google、Azure AD),请考虑使用 `OIDC 代理` 进行自动配置。OIDC 代理扩展了 OAuth 代理,可自动从提供商的 `/.well-known/openid-configuration` URL 发现端点,从而简化设置。
## 实现
### 提供商设置要求
在使用 OAuth 代理之前,您需要在 OAuth 提供商处注册您的应用程序:
1. **注册您的应用程序**(在 GitHub 设置、Google Cloud 控制台、Azure 门户等提供商的开发者控制台中)。
2. **配置重定向 URI** 为您的 FastMCP 服务器 URL 加上您选择的回调路径:
* 默认:`https://your-server.com/auth/callback`
* 自定义:`https://your-server.com/your/custom/path`(如果您设置了 `redirect_path`)
* 开发环境:`http://localhost:8000/auth/callback`
3. **获取您的凭据**:客户端 ID (Client ID) 和客户端密钥 (Client Secret)。
4. **记录 OAuth 端点**:授权 URL 和令牌 URL(通常在提供商的 OAuth 文档中找到)。
> **警告:** 您在提供商处配置的重定向 URI 必须完全匹配