你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 AI 网关管理 MCP 工具(预览版)

通过在 Microsoft Foundry 中通过 AI 网关路由模型上下文协议(MCP)流量来控制代理访问外部工具的方式。 AI 网关提供一个受治理的入口点,你可以在其中强制实施身份验证、速率限制、IP 限制和审核日志记录,而无需修改 MCP 服务器或代理代码。

此功能以预览版提供。 只有在 Foundry 门户中创建且不使用托管 OAuth 的新 MCP 工具才通过 AI 网关进行路由。

先决条件

  • AI 网关必须连接到 Microsoft Foundry 资源。 按照 在 Foundry 资源中配置 AI 网关的步骤操作。

    治理在 Microsoft Foundry 资源级别激活。 所有治理功能都依赖于此连接。

  • 你需要管理 API 管理策略的权限:连接的 API 管理实例上的 API 管理服务参与者或所有者角色。 有关详细信息,请参阅 使用 API 管理的基于角色的访问控制

  • MCP 服务器必须支持以下身份验证方法之一:

    • 托管标识(Microsoft Entra)
    • 基于密钥(API 密钥或令牌)
    • 自定义 OAuth 身份认证传递
    • 未经身份验证(如果适用)

主要优势

  • 通过网关终结点保护所有新 MCP 工具的路由
  • 一致的访问控制和身份验证强制实施
  • 网关流量的集中式可观测性(例如日志和指标)
  • 统一的限速、IP限制和路由策略
  • 通过公共目录和专用目录无缝重复使用工具

管理工具

以下部分将指导你设置 AI 网关作为受管理入口点。

添加工具

若要添加要治理的工具,请在 Foundry 门户中使用以下任一方法:

  • 通过选择“工具目录”来使用工具>目录。 然后选择要添加的 MCP 服务器。
  • 通过选择构建>工具>自定义>模型上下文协议来添加自定义工具。 然后粘贴 MCP 服务器终结点并选择身份验证类型。

添加该工具后,验证工具配置中的 MCP 服务器终结点是否显示 AI 网关 URL(例如 https://<your-API-Management-instance>.azure-api.net/mcp/...),而不是直接 MCP 服务器 URL。

有关 MCP 工具的详细信息,请参阅 “连接到模型上下文协议服务器”。

确认路由

在应用策略之前,在 Foundry 门户中确认这些设置:

  • 远程 MCP 服务器终结点:验证它是否指向 AI 网关 URL,而不是原始 MCP 服务器。
  • 重定向 URL:如果使用自定义 OAuth 标识传递,请确认重定向 URL 是否与 OAuth 应用注册匹配。
  • 身份验证方法:确认方法(基于密钥或 OAuth)符合 MCP 服务器要求。
  • 代理用法:请注意哪些代理引用此工具,以便在应用策略后进行测试。

应用策略

Azure 门户中,转到资源。 选择 API 管理 以应用 策略 进行治理。

必须通过 Azure API 管理 应用策略。 常见策略包括:

  • 速率限制:限制项目或用户可以在一分钟内发出的调用数。

    <inbound>
      <base />
      <rate-limit-by-key calls="60" renewal-period="60" counter-key="@(context.Request.IpAddress)" />
    </inbound>
    
  • IP 筛选:仅允许来自受信任网络的请求。

    <inbound>
      <base />
      <ip-filter action="allow">
        <address>10.0.0.0/24</address> <!-- internal network -->
        <address>20.50.123.45</address> <!-- trusted app -->
      </ip-filter>
    </inbound> 
    
  • 相关 ID:添加唯一的请求 ID,以便稍后可以在日志中跟踪请求。

    <inbound>
      <base />
        <set-header name="X-Correlation-Id" exists-action="override"> 
        <value>@(context.RequestId)</value>
      </set-header>
    </inbound>
    
  • 删除敏感标头:清理传入的请求以帮助保护凭据或会话数据。

    <inbound>
      <base />
      <set-header name="Cookie" exists-action="delete" />
      <set-header name="Referer" exists-action="delete" />
    </inbound>
    

    重要

    除非确定 MCP 服务器不需要身份验证标头,否则请避免删除身份验证标头(例如 Authorization)。

  • 简单的路由控制:如果你有不同的后端(如不同地理位置的后端),则可以基于标头路由请求。

    <inbound>
      <base />
      <choose>
        <when condition="@(context.Request.Headers.GetValueOrDefault('X-Region','us') == 'eu')">
          <set-backend-service base-url="https://europe-api.contoso-mcp.net" />
        </when>
        <otherwise>
          <set-backend-service base-url="https://us-api.contoso-mcp.net" />
        </otherwise>
      </choose>
    </inbound>
    

有关更多策略 XML 示例,请参阅 GitHub 上的 API 管理策略代码片段存储库。

使用代理进行测试

配置 MCP 服务器后,可以在 Foundry 门户中对其进行测试:

  1. 打开 Foundry 门户 并进入您的项目。

  2. 创建新的代理或打开现有代理,并配置 MCP 工具。 有关详细信息,请参阅 “连接到模型上下文协议服务器”。

  3. 在代理的聊天界面中,发送触发工具的消息(例如,GitHub MCP 服务器的“列出我的存储库”)。 验证响应是否成功返回。

验证治理是否正常工作

使用以下步骤以确认通过 AI 网关对流量进行路由并应用策略:

  1. 在 Foundry 门户中,打开 MCP 工具配置。 确认工具终结点指向 AI 网关(而不是直接指向 MCP 服务器)。

  2. 在Azure门户中,打开连接到 Foundry 资源的 API 管理实例。 检查指标和日志,以确认在代理调用工具时请求已出现。

查看 API 管理指标时:

  • 查找 API 管理实例的名称与 MCP 工具匹配的请求。
  • 检查成功调用(2xx)和策略阻止呼叫的 响应代码 (速率限制为 429,IP 筛选器为 403)。
  • 如果应用速率限制,请验证 X-RateLimit-Remaining 标头是否随每次调用而减少。
  • 有关日志级别的详细信息,请在 API 管理实例上启用 诊断设置,然后查询 Azure Monitor 日志。

安全注意事项

  • 将 API 密钥、令牌和 OAuth 客户端机密视为机密。 将共享凭据存储在项目连接中,并限制对已授权用户的项目访问权限。
  • 对托管标识和 Microsoft Entra 访问应用最小特权原则。
  • 查看你转发到后端的 HTTP 标头。 仅删除不需要的标头,并避免删除所需的身份验证标头。

有关 MCP 身份验证选项,请参阅 为模型上下文协议(MCP)工具(预览版)设置身份验证

故障 排除

问题 原因 分辨率
该工具仍直接调用 MCP 服务器。 该工具是在 AI 网关连接之前创建的,或者该工具不符合网关路由的条件(例如,它使用托管 OAuth)。 连接 AI 网关后重新创建该工具。 确认该工具是 MCP 工具,并且不使用托管 OAuth。
添加 API 管理策略后,工具调用失败。 策略会阻止流量(速率限制、IP 筛选)或修改 MCP 服务器所需的标头。 暂时禁用策略以隔离原因,然后优化策略条件。 避免删除所需的身份验证标头。
自定义 OAuth 身份直通功能的 OAuth 登录失败。 重定向 URL 或 OAuth 应用配置不正确。 在 OAuth 应用注册中重新检查重定向 URL,并确认所需的 OAuth 设置。 有关选项和术语,请参阅 为模型上下文协议(MCP)工具(预览版)设置身份验证
AI 网关中看不到请求追踪。 AI 网关不会记录工具痕迹。 使用 API 管理来记录网关流量的日志并进行指标分析。 使用 MCP 服务器日志获取工具级详细信息。

限制

  • AI 网关仅支持 MCP 工具。 不支持基于 Foundry 的工具,例如SharePoint、代码优先 MCP 工具、具有托管 OAuth 的工具或 OpenAPI 工具。
  • AI 网关不会记录工具追踪记录。
  • 网关路由仅在工具创建时应用。 现有工具不会自动通过 AI 网关进行调解。
  • API 网关仅在 Azure 门户支持 API 管理策略的实施,不支持在 Foundry 门户中实施此策略。

有关使用网关时的 Foundry 智能体服务工具支持的更广泛列表,请参阅自备 AI 网关到 Azure AI 智能体服务(预览版)