[ PROMPT_NODE_24726 ]
oidc-proxy
[ SKILL_DOCUMENTATION ]
# OIDC 代理
> 将 OIDC 提供商与 MCP 的身份验证工作流无缝集成。
OIDC 代理使 FastMCP 智能体服务器能够与开箱即用**不支持动态客户端注册 (DCR)** 的 OIDC 提供商进行身份验证。这包括 Auth0、Google、Azure、AWS 等 OAuth 提供商。对于支持 DCR 的提供商(如 WorkOS AuthKit),请改用 `RemoteAuthProvider`。
OIDC 代理构建于 `OAuthProxy` 之上,因此它在底层具备所有相同的功能。
## 实现
### 提供商设置要求
在使用 OIDC 代理之前,您需要在 OAuth 提供商处注册您的应用程序:
1. **注册您的应用程序**(在 Auth0 应用程序、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)。
> **警告:** 您在提供商处配置的重定向 URI 必须与您的 FastMCP 服务器 URL 加上回调路径完全匹配。如果您在 OIDC 代理中自定义了 `redirect_path`,请相应地更新提供商的重定向 URI。
### 基本设置
以下是如何使用任何提供商实现 OIDC 代理的方法:
python
from fastmcp import FastMCP
from fastmcp.server.auth.oidc_proxy import OIDCProxy
# 创建 OIDC 代理
auth = OIDCProxy(
# 提供商的配置 URL
config_url="https://provider.com/.well-known/openid-configuration",
# 您注册的应用程序凭据
client_id="your-client-id",
client_secret="your-client-secret",
# 您的 FastMCP 服务器的公共 URL
base_url="https://your-server.com",
# 可选:自定义回调路径(默认为 "/auth/callback")
# redirect_path="/custom/callback",
)
mcp = FastMCP(name="My Server", auth=auth)
### 配置参数
您的 OAuth 提供商的 OIDC 配置 URL
来自您注册的 OAuth 应用程序的客户端 ID
来自您注册的 OAuth 应用程序的客户端密钥
您的 FastMCP 服务器的公共 URL(例如 `https://your-server.com`)
用于配置验证的严格标志。当为 True 时,要求所有 OIDC 强制字段。
需要它的 OIDC 提供商的受众 (Audience) 参数(例如