使用说明
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://<APPUUID>). - 添加范围(例如。,
mcp.tools).
- 配置身份验证:
- 如果需要,为您的客户端添加重定向URI。
- 获取以下值 对于您的应用程序:
- 租户ID
- 应用程序(客户端)ID
- 应用程序ID URI
- 作用域名称
更新代码和资源元数据✏️
-
更新
BearerAuthProvider在……里面server.py:- 替换
<ENTRATENANTID>使用您的Entra租户ID。 - 替换
<APPUUID>使用您的应用程序(客户端)ID或应用程序ID URI。 - 设置正确
jwks_uri,issuer,audience,以及required_scopes.
例子:
auth = BearerAuthProvider( jwks_uri="https://login.microsoftonline.com/<ENTRATENANTID>/discovery/v2.0/keys", issuer="https://sts.windows.net/<ENTRATENANTID>/", algorithm="RS256", audience="api://<APPUUID>", required_scopes=["mcp.tools"] ) - 替换
-
更新
oauth-protected-resource.json:- 确保此文件与应用程序的元数据匹配,包括资源ID、作用域和颁发者。
示例:oauth-protected-resource.json📄
{
"resource": "api://<APPUUID>",
"issuer": "https://sts.windows.net/<ENTRATENANTID>/",
"scopes": ["mcp.tools"]
}
用实际值替换占位符。
GitHub副本代理模式🤖
此MCP服务器也可以在VS Code的GitHub Copilot Agent模式下使用。要启用此功能,请执行以下操作:
- 确保服务器正在运行。
- 使用
mcp.json配置GitHub Copilot的MCP服务器的文件。 - 从启动服务器
mcp.json配置。
测试🧪
您可以使用curl测试受保护的端点:
curl -H "Authorization: Bearer <token>" http://localhost:8000/mcp
如果没有提供令牌或令牌无效,您将收到401 Unauthorized响应。
许可证📜
看 许可证.
