配置网络隔离

从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 App 服务扩展。
  • 连接到机器人 Direct Line 客户端的 Web 聊天控件。

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

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

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

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

创建虚拟网络

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

拒绝来自网络的出站流量

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

验证连接是否已断开

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

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

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

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

创建专用终结点

  1. 转到 Azure 门户
  2. 打开机器人的 Web 应用机器人资源。
  3. 设置下选择网络
    1. 专用访问选项卡上,选择创建专用终结点连接
      1. 资源选项卡上,从目标子资源列表中选择机器人
      2. 虚拟网络选项卡中,选择你创建的虚拟网络和第二个子网。
      3. 保存专用终结点。

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

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

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

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

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

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

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

    initialized 的值应当为 true

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

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

注意

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

  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 应用服务中启用虚拟网络集成创建虚拟网络。