你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
从 2023 年 9 月 1 日起,强烈建议使用 Azure 服务标记 方法进行网络隔离。 DL-ASE 的使用应仅限于高度特定的方案。 在生产环境中实施此解决方案之前,我们建议咨询支持团队以获取指导。
可以为现有的 Direct Line 应用服务扩展中的机器人添加网络隔离。 专用终结点允许网络隔离的机器人与运行所必需的 Bot Framework 服务进行双向通信,以确保机器人在仅限于虚拟网络时能够正确运行。
若要向机器人添加网络隔离,请执行以下作:
- 使用虚拟网络并配置网络以防止出站流量。 此时,机器人将无法与其他 Bot Framework 服务通信。
- 配置专用终结点以还原连接。
- 重启应用服务并在隔离网络中测试机器人。
- 禁用对机器人的公共网络访问。
先决条件
- 一个 Azure 帐户。 如果还没有帐户,请在开始之前创建 免费帐户。
- 有权限创建 Azure 虚拟网络和网络安全组资源的订阅。
- 一个正常工作的 Direct Line 应用服务扩展机器人。
- 您的机器人使用适用于 C# 或 JavaScript 的 Bot Framework SDK,版本为 4.16 或更高。
- 机器人已启用命名管道。
- 机器人的应用服务已启用 Direct Line 应用服务扩展。
- 连接到您机器人 Direct Line 客户端的网页聊天控件。
若要确认现有机器人已正确配置:
在浏览器中,打开你的机器人的 Direct Line 客户端端点。 例如,
https://<your-app_service>.azurewebsites.net/.bot。验证页面是否显示以下内容:
{"v":"123","k":true,"ib":true,"ob":true,"initialized":true}- v 显示 Direct Line 应用服务扩展的生成版本。
- k 指示扩展是否可以从其配置中读取扩展密钥。
- 初始化 指示扩展是否能够从 Azure AI 机器人服务下载机器人元数据。
- ib 指示扩展是否能够建立与机器人的入向连接。
- ob 指示扩展程序是否能够从机器人程序建立外向连接。
创建虚拟网络
- 转到 Azure 门户。
- 在机器人所在的同一区域中创建 Azure 虚拟网络资源。
- 这会同时创建虚拟网络和子网。
- 不要创建任何虚拟机。
- 有关常规说明,请参阅 使用 Azure 门户创建虚拟网络。
- 打开机器人的应用服务资源并启用虚拟网络集成。
- 使用上一步中的虚拟网络和子网。
- 有关常规说明,请参阅 在 Azure 应用服务中启用虚拟网络集成。
- 创建第二个子网。 稍后将使用第二个子网添加私有端点。
拒绝来自网络的出站流量
- 打开与第一个子网关联的网络安全组。
- 如果未配置安全组,请创建一个。 有关详细信息,请参阅网络安全组。
- 在设置下,选择出站安全规则。
- 在出站安全规则列表中,启用 DenyAllInternetOutbound。
- 转到机器人的应用服务资源。
- 重启应用服务。
验证连接是否已断开
在单独的浏览器选项卡中,打开机器人的 Direct Line 客户端终结点。 例如,
https://<your-app_service>.azurewebsites.net/.bot。验证页面是否显示以下内容:
{"v":"123","k":true,"ib":true,"ob":true,"initialized":false}值
initialized应为false,因为应用服务和应用服务扩展无法连接到其他 Bot Framework 服务来初始化自身。 您的机器人现在被隔离在虚拟网络中,以管理出站连接。
创建专用终结点
- 转到 Azure 门户。
- 打开 Azure 机器人服务资源来管理你的机器人。
- 在设置下选择网络 。
- 在 “专用访问 ”选项卡上,选择“ 创建专用终结点”。
- 在 “资源 ”选项卡上,对于 “目标”子资源,从列表中选择 “机器人 ”。
- 在“ 虚拟网络 ”选项卡上,选择虚拟网络和创建的第二个子网。
- 保存专用终结点。
- 在 “专用访问 ”选项卡上,选择“ 创建专用终结点”。
将专用终结点添加到机器人的应用服务
- 打开机器人的 Azure 应用服务资源。
- 在“设置”下,选择“配置”。
- 在“应用程序设置”选项卡上,选择“新建应用程序设置”。
- 将“名称”设置为“
DirectLineExtensionABSEndpoint”。 - 将 值 设置为专用终结点 URL,例如
https://<your_azure_bot>.privatelink.directline.botframework.com/v3/extension。 - 保存新设置。
- 将“名称”设置为“
- 在“应用程序设置”选项卡上,选择“新建应用程序设置”。
重启应用服务并验证是否已还原连接
重启用于机器人的应用服务。
在单独的浏览器选项卡中,打开机器人的 Direct Line 客户端终结点。 例如,
https://<your-app_service>.azurewebsites.net/.bot。验证页面是否显示以下内容:
{"v":"123","k":true,"ib":true,"ob":true,"initialized":true}值
initialized应为true.使用连接到你机器人 Direct Line 客户端的 Web Chat 控件与专用网络内的机器人进行交互。
如果专用终结点无法正常工作,可以添加规则以允许专门流向 Azure AI Bot 服务的出站流量。
注释
这样,虚拟网络就不那么隔离了。
- 打开与第一个子网关联的网络安全组。
- 在设置下,选择出站安全规则。
- 在出站安全规则列表中,启用 AllowAzureBotService。
- 转到机器人的应用服务资源。
- 重启应用服务。
关闭机器人的公共网络访问权限
可以阻止对 Azure AI 机器人服务的公共访问,并且仅允许通过专用终结点进行访问。 可以在 Azure 门户中禁用 Azure AI 机器人服务的网络访问。
小窍门
这将卸载 Teams 频道的配置。 无法在 Azure 门户中配置或更新其他渠道(Direct Line 除外)。
- 转到 Azure 门户。
- 打开机器人的应用服务。
- 禁用公用网络访问。
其他信息
虚拟网络配置
有几个选项可用于为虚拟网络配置机器人。
- 创建虚拟网络,然后在网络中启用 Azure 应用服务。 这是本文中使用的选项。
- 创建应用服务环境,然后在环境中添加应用服务计划。
- 创建虚拟网络。
- 在虚拟网络中启用 Azure 应用服务集成。
以下是本文中使用的步骤,如“ 创建虚拟网络 ”部分中所述。
有关详细信息,请参阅 使用 Azure 门户创建虚拟网络 并在 Azure 应用服务中启用虚拟网络集成。