MCP身份验证示例🚀
此存储库包含用于构建使用FastAPI和FastMCP进行身份验证的模型上下文协议(MCP)服务器的示例代码。
运行服务器🖥️
- 在VS Code中打开此文件夹
- (如果使用devcontainer)如果系统提示,请单击“在容器中重新打开”
- 安装依赖项:
pip install -r requirements.txt- 启动服务器:
python server.py服务器将于启动http://localhost:8000
使用Microsoft Entra ID(Azure AD)进行身份验证🔐
此示例演示了如何使用来自Microsoft Entra ID(Azure AD)的OAuth2 Bearer令牌保护您的MCP服务器。
所需的Entra ID申请设置🛠️
- 注册应用程序 通过Azure门户在Microsoft Entra ID(Azure AD)中。
- 公开API:
- 在您的应用程序注册中转到“公开API”。 - 设置应用ID URI(例如。, api://). - 添加范围(例如。, mcp.tools).
- 配置身份验证:
- 如果需要,为您的客户端添加重定向URI。
- 获取以下值 对于您的应用程序:
- 租户ID - 应用程序(客户端)ID - 应用程序ID URI - 作用域名称
更新代码和资源元数据✏️
- 更新
BearerAuthProvider在……里面server.py:
- 替换 ` 使用您的Entra租户ID。 - 替换 使用您的应用程序(客户端)ID或应用程序ID URI。 - 设置正确 jwks_uri, issuer, audience,以及 required_scopes`.
例子:
auth = BearerAuthProvider(
jwks_uri="https://login.microsoftonline.com//discovery/v2.0/keys",
issuer="https://sts.windows.net//",
algorithm="RS256",
audience="api://",
required_scopes=["mcp.tools"]
)- 更新
oauth-protected-resource.json:
- 确保此文件与应用程序的元数据匹配,包括资源ID、作用域和颁发者。
示例:oauth-protected-resource.json📄
{
"resource": "api://",
"issuer": "https://sts.windows.net//",
"scopes": ["mcp.tools"]
}用实际值替换占位符。
GitHub副本代理模式🤖
此MCP服务器也可以在VS Code的GitHub Copilot Agent模式下使用。要启用此功能,请执行以下操作:
- 确保服务器正在运行。
- 使用
mcp.json配置GitHub Copilot的MCP服务器的文件。 - 从启动服务器
mcp.json配置。
测试🧪
您可以使用curl测试受保护的端点:
curl -H "Authorization: Bearer " http://localhost:8000/mcp如果没有提供令牌或令牌无效,您将收到401 Unauthorized响应。
许可证📜
看 许可证.

