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