通过共享专用终结点保护出站流量

如果在 Azure Web PubSub 中使用事件处理程序,则可能会具有流向使用 Azure 应用服务的 Web 应用功能创建的静态 Web 应用上游终结点的出站流量,或流向使用 Azure Functions 创建的函数的出站流量。 可以将 Web 应用和 Functions 配置为使用接受来自虚拟网络列表的连接的终结点,并拒绝源自公用网络的外部连接。 可以在 Web PubSub 服务中创建出站专用终结点连接来访问这些终结点。

显示共享专用终结点体系结构的示意图。

本文介绍如何配置 Web PubSub 资源,以通过共享专用终结点而不是通过公用网络将上游调用发送到 Azure Functions 中的函数。

此出站方法需要符合下列要求:

  • 必须使用 Azure 应用服务或 Azure Functions 部署上游终结点。
  • Web PubSub 资源必须位于标准层或高级层。
  • 必须通过选择可创建该资源的特定层来创建 Azure 应用服务或 Azure Functions 资源。 有关详细信息,请参阅将专用终结点用于 Azure Web 应用

使用 Azure Web PubSub API 创建的安全资源的专用终结点称为共享专用链接资源。 你正在“共享”对与 Azure 专用链接集成的资源(例如 Azure Functions 资源)的访问权限。 这些专用终结点是在 Web PubSub 服务执行环境中创建的,不会直接显示出来。

先决条件

  • 具有活动订阅的 Azure 帐户。 创建试用版订阅
  • Azure Web PubSub 实例。
  • 一个 Azure Functions 资源。

注意

本文中的示例使用以下值:

  • 此 Azure Web PubSub 资源的资源 ID 为 _/subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webPubSub/contoso-webpubsub
  • Azure Functions 网络资源的资源 ID 为 _/subscriptions//00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Web/sites/contoso-func

要使用以下示例中的步骤,请将这些值替换为自己的订阅 ID、Web PubSub 资源的名称和 Azure Functions 资源的名称。

  1. 在 Azure 门户中,转到 Azure Web PubSub 资源。

  2. 在左侧菜单中选择“网络”。

  3. 选择“专用访问”

  4. 选择“添加共享专用终结点”。

    显示管理共享专用终结点的屏幕截图。

  5. 输入共享专用终结点的名称。

  6. 要设置目标链接源,请选择“从资源中选择”,或在“指定资源 ID”中输入你的资源 ID。

    (可选)可以在“请求消息”中输入文本,以向目标资源所有者发送请求。

  7. 选择 添加

    显示添加共享专用终结点的屏幕截图。

共享专用终结点资源的“预配状态”值为“成功”。 在目标资源上批准终结点之前,“连接状态”为“挂起”

屏幕截图显示已添加的共享专用终结点等待审批。

为函数审批专用终结点连接

当共享专用终结点连接处于“挂起”状态时,必须在目标资源中批准连接请求。

重要

批准专用终结点连接后,将无法再从公用网络访问该函数。 你可能需要在自己的虚拟网络中创建其他专用终结点才能访问函数终结点。

  1. 在 Azure 门户中,转到 Azure Functions 应用。
  2. 在左侧菜单中选择“网络”。
  3. 在“入站流量”下选择“专用终结点”。
  4. 选择在 Web PubSub 资源中创建的挂起连接。
  5. 选择“批准”,然后选择“是”以确认

批准专用终结点连接的屏幕截图。

可以选择“刷新”来检查状态。 “连接状态”可能需要几分钟时间才会更新为“已批准”

Azure 门户的屏幕截图,显示“专用终结点连接”窗格上的“已批准”状态。

批准需要几分钟时间才能反映在 Web PubSub 中。 可以使用 Azure 门户或 Azure CLI 来检查状态。

已批准的共享专用终结点的屏幕截图。

此时,已在 Azure Web PubSub 和 Azure Functions 之间建立了专用终结点。

验证上游调用是否来自专用 IP 地址

设置专用终结点后,可以通过检查上游调用的 X-Forwarded-For 标头来验证传入调用是否来自专用 IP 地址。

Azure 门户屏幕截图显示了传入请求来自专用 IP。