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

配置网络隔离

从 2023 年 9 月 1 日起,强烈建议使用 Azure 服务标记 方法进行网络隔离。 DL-ASE 的使用应仅限于高度特定的方案。 在生产环境中实施此解决方案之前,我们建议咨询支持团队以获取指导。

可以为现有的 Direct Line 应用服务扩展中的机器人添加网络隔离。 专用终结点允许网络隔离的机器人与运行所必需的 Bot Framework 服务进行双向通信,以确保机器人在仅限于虚拟网络时能够正确运行。

若要向机器人添加网络隔离,请执行以下作:

  1. 使用虚拟网络并配置网络以防止出站流量。 此时,机器人将无法与其他 Bot Framework 服务通信。
  2. 配置专用终结点以还原连接。
  3. 重启应用服务并在隔离网络中测试机器人。
  4. 禁用对机器人的公共网络访问。

先决条件

  • 一个 Azure 帐户。 如果还没有帐户,请在开始之前创建 免费帐户
    • 有权限创建 Azure 虚拟网络和网络安全组资源的订阅。
  • 一个正常工作的 Direct Line 应用服务扩展机器人。
    • 您的机器人使用适用于 C# 或 JavaScript 的 Bot Framework SDK,版本为 4.16 或更高。
    • 机器人已启用命名管道。
    • 机器人的应用服务已启用 Direct Line 应用服务扩展。
  • 连接到您机器人 Direct Line 客户端的网页聊天控件。

若要确认现有机器人已正确配置:

  1. 在浏览器中,打开你的机器人的 Direct Line 客户端端点。 例如,https://<your-app_service>.azurewebsites.net/.bot

  2. 验证页面是否显示以下内容:

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
    
    • v 显示 Direct Line 应用服务扩展的生成版本。
    • k 指示扩展是否可以从其配置中读取扩展密钥。
    • 初始化 指示扩展是否能够从 Azure AI 机器人服务下载机器人元数据。
    • ib 指示扩展是否能够建立与机器人的入向连接。
    • ob 指示扩展程序是否能够从机器人程序建立外向连接。

创建虚拟网络

  1. 转到 Azure 门户
  2. 在机器人所在的同一区域中创建 Azure 虚拟网络资源。
  3. 打开机器人的应用服务资源并启用虚拟网络集成。
  4. 创建第二个子网。 稍后将使用第二个子网添加私有端点。

拒绝来自网络的出站流量

  1. 打开与第一个子网关联的网络安全组。
    • 如果未配置安全组,请创建一个。 有关详细信息,请参阅网络安全组
  2. 设置下,选择出站安全规则
    1. 在出站安全规则列表中,启用 DenyAllInternetOutbound
  3. 转到机器人的应用服务资源。
  4. 重启应用服务。

验证连接是否已断开

  1. 在单独的浏览器选项卡中,打开机器人的 Direct Line 客户端终结点。 例如,https://<your-app_service>.azurewebsites.net/.bot

  2. 验证页面是否显示以下内容:

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":false}
    

    initialized 应为 false,因为应用服务和应用服务扩展无法连接到其他 Bot Framework 服务来初始化自身。 您的机器人现在被隔离在虚拟网络中,以管理出站连接。

创建专用终结点

  1. 转到 Azure 门户
  2. 打开 Azure 机器人服务资源来管理你的机器人。
  3. 设置下选择网络
    1. “专用访问 ”选项卡上,选择“ 创建专用终结点”。
      1. “资源 ”选项卡上,对于 “目标”子资源,从列表中选择 “机器人 ”。
      2. 在“ 虚拟网络 ”选项卡上,选择虚拟网络和创建的第二个子网。
      3. 保存专用终结点。

将专用终结点添加到机器人的应用服务

  1. 打开机器人的 Azure 应用服务资源。
  2. 在“设置”下,选择“配置”。
    1. 在“应用程序设置”选项卡上,选择“新建应用程序设置”
      1. 将“名称”设置为“DirectLineExtensionABSEndpoint”。
      2. 设置为专用终结点 URL,例如 https://<your_azure_bot>.privatelink.directline.botframework.com/v3/extension
      3. 保存新设置。

重启应用服务并验证是否已还原连接

  1. 重启用于机器人的应用服务。

  2. 在单独的浏览器选项卡中,打开机器人的 Direct Line 客户端终结点。 例如,https://<your-app_service>.azurewebsites.net/.bot

  3. 验证页面是否显示以下内容:

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
    

    initialized 应为 true.

  4. 使用连接到你机器人 Direct Line 客户端的 Web Chat 控件与专用网络内的机器人进行交互。

如果专用终结点无法正常工作,可以添加规则以允许专门流向 Azure AI Bot 服务的出站流量。

注释

这样,虚拟网络就不那么隔离了。

  1. 打开与第一个子网关联的网络安全组。
  2. 设置下,选择出站安全规则
    1. 在出站安全规则列表中,启用 AllowAzureBotService
  3. 转到机器人的应用服务资源。
  4. 重启应用服务。

关闭机器人的公共网络访问权限

可以阻止对 Azure AI 机器人服务的公共访问,并且仅允许通过专用终结点进行访问。 可以在 Azure 门户中禁用 Azure AI 机器人服务的网络访问。

小窍门

这将卸载 Teams 频道的配置。 无法在 Azure 门户中配置或更新其他渠道(Direct Line 除外)。

  1. 转到 Azure 门户
  2. 打开机器人的应用服务。
  3. 禁用公用网络访问。

其他信息

虚拟网络配置

有几个选项可用于为虚拟网络配置机器人。

  • 创建虚拟网络,然后在网络中启用 Azure 应用服务。 这是本文中使用的选项。
  • 创建应用服务环境,然后在环境中添加应用服务计划。
  1. 创建虚拟网络。
  2. 在虚拟网络中启用 Azure 应用服务集成。

以下是本文中使用的步骤,如“ 创建虚拟网络 ”部分中所述。

有关详细信息,请参阅 使用 Azure 门户创建虚拟网络 并在 Azure 应用服务中启用虚拟网络集成