你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure AI 机器人服务中的网络隔离
从 2023 年 9 月 1 日起,建议使用 Azure 服务标记 方法进行网络隔离。 DL-ASE 的使用应只限于高度特定的场景。 在生产环境中实施此解决方案之前,我们建议你去咨询支持团队以获取指导。
本文介绍与Azure 机器人及其依赖服务有关的网络隔离的概念。
你可能想将机器人的访问权限限制为专用网络。 在 Azure AI 机器人服务中执行此操作的唯一方法是使用 Direct Line App 服务 扩展。 例如,可以使用App 服务扩展来托管公司内部机器人,并要求用户从公司网络内访问机器人。
有关如何在专用网络中配置机器人的详细说明,请参阅如何 使用隔离网络。
有关网络隔离支持功能的详细信息,请参阅:
功能 | 文章 |
---|---|
Direct Line 应用服务扩展 | Direct Line 应用服务扩展 |
Azure 虚拟网络 | 什么是 Azure 虚拟网络? |
Azure 网络安全组 | 网络安全组 |
Azure 专用链接和专用终结点 | 什么是专用终结点? |
Azure DNS | 使用 Azure 门户创建 Azure DNS 区域和记录 |
使用专用终结点
当机器人终结点位于虚拟网络中,并且网络安全组中设置了相应的规则时,可以使用专用终结点限制来自机器人应用服务的入站和出站请求的访问。
专用终结点可通过 Direct Line 应用服务扩展在机器人服务中使用。 请参阅以下使用专用终结点的要求:
活动必须发送到应用服务终结点或从应用服务终结点发送。
该应用服务扩展与机器人终结点应用服务并置。 传入和传出终结点的所有消息都是虚拟网络的本地消息,无需发送到 Bot Framework 服务即可直接访问客户端。
若要使用用户身份验证,机器人客户端需要与服务提供商(如 Microsoft Entra ID 或 GitHub)和令牌终结点通信。
如果机器人客户端位于虚拟网络中,则需要从虚拟网络中把这两个终结点加入允许列表。 通过服务标记为令牌终结点执行此操作。 机器人终结点本身还需要访问令牌终结点,如下所示。
使用App 服务扩展,机器人终结点和App 服务扩展需要向 Bot Framework 服务发送出站 HTTPS 请求。
这些请求适用于各种元操作,例如检索机器人配置或从令牌终结点检索令牌。 为了方便这些请求,需要设置和配置专用终结点。
机器人服务如何使用专用终结点
使用专用终结点的主要方案有两种:
- 机器人访问令牌终结点。
- Direct Line 通道扩展访问机器人服务。
专用终结点 将所需的服务投影 到虚拟网络中,以便它们直接在网络中可用,而无需向外部互联网公开虚拟网络或允许列出任何 IP 地址。 通过专用终结点的所有流量都经过 Azure 内部服务器,以确保流量不会泄露到外部互联网。
该服务使用两个子资源,Bot
和Token
,将服务投射到你的网络中。 添加专用终结点时,Azure 会为每个子资源生成特定于机器人的 DNS 记录,并在 DNS 区域组中配置终结点。 这可确保目标为相同子资源的不同机器人的终结点可以相互区分,同时重用相同的 DNS 区域组资源。
案例场景
假如你有一个名为 SampleBot 的机器人及其对应的应用服务, SampleBot.azurewebsites.net
该服务就充当此机器人的消息传送终结点。
在公有云的Azure 门户中为带有子资源类型的SampleBot 配置专用终结点,该终结点创建一个 DNS 区域组,其中包含对应于SampleBot.botplinks.botframework.com
的A
记录。 此 DNS 记录映射到虚拟网络中的本地 IP。 同样,使用子资源类型 Token
生成终结点 SampleBot.bottoken.botframework.com
。
创建的 DNS 区域中的A
记录将映射到虚拟网络中的 IP 地址。 因此,发送到此终结点的请求是网络的本地请求,不会违反网络安全组或 Azure 防火墙中限制网络出站流量的规则。 Azure 网络层和 Bot Framework 服务可确保请求不会泄露到公共网络中,并且为网络维护隔离。