Token导航 LogoToken导航TokenDH.com
Protected MCP Server Demo logo
AI代理未说明官方级别未说明来源级核验

Protected MCP Server Demo

MCP Server

一个基于ASP.NET Core的Model Context Protocol (MCP)服务器,通过Azure Entra ID实现企业级安全和基于角色的访问控制(RBAC)。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
安全认证C#VS CodeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

gmantri

提供方

gmantri

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

受保护的MCP服务器演示

ASP。NET Core实现的模型上下文协议(MCP)服务器,使用Azure Entra ID(Active Directory)进行安全保护。该项目演示了如何通过MCP向LLM公开功能(简单的数学工具),同时实施企业级安全和基于角色的访问控制(RBAC)。

此工具的目的是演示两件事:

  1. 如何使用Azure AD/Entra ID保护MCP服务器。
  2. 如何为MCP服务器公开的不同工具实现基于角色的访问控制(RBAC)。

特性

  • 模型上下文协议实现:使用标准化的MCP规范将工具暴露给AI助手。
  • 工具:包括基本的数学运算(Add, Subtract, Multiply, Divide).
  • 缺省巩固安全:

- 受Azure Entra ID(OAuth2/OpenID连接)保护。 - 使用JWT承载令牌身份验证。 - 在每个工具的基础上实现粒度RBAC(基于角色的访问控制)。

先决条件

  • .NET SDK:版本10.0(或兼容的预览版/标准版)。
  • Azure帐户:用于创建应用程序注册和部署Web应用程序。
  • Azure命令行界面:用于部署脚本。
  • MCP客户端:能够连接到支持身份验证凭据的MCP服务器的客户端。此代码使用VS code作为授权的MCP客户端。

入门指南

1.Azure安装程序(Entra ID)

您需要在Azure Entra ID租户中注册一个应用程序来处理身份验证。

  1. 创建应用程序注册:

- 转到Azure门户>Microsoft Entra ID>应用程序注册。 - 新注册>命名它(例如,“受保护的MCP服务器”)。 - 对于帐户类型,请选择 Accounts in this organizational directory only (Single Tenant). - 对于重定向URI,请从以下内容开始 http://localhost:5284。如果您已经在Azure中部署了web应用程序,请在创建后稍后在重定向URI部分添加其URL。 - 记下Application (client) IDDirectory (tenant) ID。稍后需要。

  1. 定义应用程序角色:

- 在应用程序注册刀片中,转到 应用程序角色.

- 创建以下角色(将允许的成员类型设置为 用户/组):

显示名称描述允许的成员类型
添加工具用户add-tool-user此角色的用户将能够调用“添加”工具。用户/组
减法工具用户subtract-tool-user此角色的用户将能够调用“减法”工具。用户/组
乘法工具用户multiply-tool-user此角色的用户将能够调用“乘法”工具。用户/组
分割工具用户divide-tool-user此角色的用户将能够调用“Divide”工具。用户/组
  1. 公开API:

- 应用内注册> 公开API. - 设置 应用程序ID URI (例如。, api://). - 添加作用域: - 点击 添加作用域. - 作用域名称: access_as_user. - 谁可以同意?: 管理员和用户. - 输入有效的显示名称和描述。 - 确保状态为 启用 然后单击 添加范围. - 授权客户端应用程序: - 点击 添加客户端应用程序. - 输入 VS Code 客户端ID: aebc6443-996d-45c2-90f0-388ff96faa56. - 选择授权的作用域以允许VS Code为您的API请求令牌。

  1. 指派角色:

- 首选 企业应用程序 (搜索您的应用程序名称)。 - 首选 用户和组 > 添加用户/组 >选择用户>选择适当的角色。 - *注意:只有具有指定角色的用户才能成功调用相应的工具。*

2.配置

更新 appsettings.jsonProtectedMcpServerDemo 或者使用环境变量。

应用程序参数:

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "your-tenant.onmicrosoft.com",
    "TenantId": "your-tenant-id",
    "ClientId": "your-client-id"
  },
  "ApiEndpoint": "https://your-app-url.azurewebsites.net" or "http://localhost:5284"
}

3.地方发展

cd ProtectedMcpServerDemo
dotnet run

服务器将启动(通常检查控制台端口 http://localhost:5284https://localhost:7017).

4.在VS代码中使用MCP服务器

  1. 打开VS代码。
  1. 创建一个名为的文件 mcp.json 内部 .vscode 项目文件夹中的目录。您可能需要创建 .vscode 文件夹(如果不存在)。
  1. 将以下内容复制到 mcp.json 文件:
{
    "servers": {
        "My Math MCP Server": {
            "type": "http",
            "url": "http://localhost:5284"
        }
    }
}
  1. 启动MCP服务器。VS Code将提示您登录。使用您的工作/学校帐户登录。
  1. 打开GitHub Copilot聊天。从工具中选择“我的数学MCP服务器”,然后开始问与数学相关的问题。例如,你可以问这样的问题 what is 5 times 2 minus 7.

5.部署到Azure

部署脚本 deploy.sh 为Azure Web应用程序提供。

  1. 请确保您已登录到Azure:
   az login
  1. 编辑 ProtectedMcpServerDemo/deploy.sh 并更新 Configuration 顶部的变量(资源组、应用程序名称)和 Azure AD Configuration 部分。
  2. 运行脚本:
   cd ProtectedMcpServerDemo
   chmod +x deploy.sh
   ./deploy.sh
  1. 部署成功后,进行更改 url 在你的 mcp.json 连接到在Azure中运行的MCP服务器。

用法

要使用此服务器,您的MCP客户端必须在 Authorization 连接到MCP端点时的标头。

  • MCP端点: https://.azurewebsites.net
  • 运输:HTTP/SSE

授权流程

  1. 客户端从Azure AD获取资源的访问令牌 api://.
  2. 客户端连接到MCP服务器端点,提供令牌:

Authorization: Bearer

  1. 当工具(例如。, Add)服务器检查令牌是否包含所需的角色声明(例如。, add-tool-user).
  2. 如果获得授权,该工具将执行;否则,访问将被拒绝。

项目结构

  • 程序cs:配置web主机、JWT身份验证和MCP服务。
  • 工具/数学工具:定义MCP工具并应用 [Authorize(Roles = "...")] 属性来强制执行权限。
  • deploy.sh:用于构建、打包应用程序并将其部署到Azure Web Apps的脚本。

目录标签

目录标签

安全认证C#VS CodeMCP协议本地部署RBACAzure集成数学工具

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP