你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用托管标识向源进行身份验证(预览版)

适用于: ✔️ Front Door 标准 ✔️ Front Door 高级版

Microsoft Entra ID 提供的托管标识使 Azure Front Door Standard/Premium 实例能够安全地访问其他 Microsoft Entra 保护的资源(例如 Azure Blob 存储),而无需管理凭据。 有关详细信息,请参阅 什么是 Azure 资源的托管标识?

为 Azure Front Door 启用托管标识并向源授予所需的托管标识权限后,Front Door 将使用托管标识从 Microsoft Entra ID 获取访问令牌,以便访问指定的资源。 成功获取令牌后,Front Door 将使用 Bearer 方案在 Authorization 标头中设置令牌的值,然后将请求转发到源。 Front Door 将缓存令牌,直到令牌过期。

Note

在 Front Door 中启用私有链接的源当前不支持此功能。

Azure Front Door 支持两种类型的托管标识:

  • 系统分配的标识:此标识绑定到服务,如果删除服务,则会删除。 每个服务只能有一个系统分配的标识。
  • 用户分配的标识:这是可以分配给服务的独立 Azure 资源。 每个服务可以有多个用户分配的标识。

托管标识特定于托管你的 Azure 订阅的 Microsoft Entra 租户。 如果将订阅移动到不同的目录,则需要重新创建并重新配置标识。

Prerequisites

启用托管标识

  1. 导航到现有的 Azure Front Door 配置文件。 在左侧菜单中,选择“安全”下的“标识”

  2. 选择 系统分配 的或 用户分配的 托管标识。

    • 系统分配 - 与 Azure Front Door 配置文件生命周期绑定的托管标识。

    • 用户分配 - 具有其生命周期的独立托管标识资源。

    系统分配

    1. “状态 ”切换为 “打开 ”,然后选择“ 保存”。

      系统分配的托管标识配置页的屏幕截图。

    2. 出现提示时,请选择“是”,确认为 Front Door 配置文件创建系统托管标识

    用户分配

    若要使用用户分配的托管标识,必须事先创建一个。 有关创建新标识的说明,请参阅创建用户分配的托管标识

    1. 在“ 用户分配 ”选项卡中,选择“ + 添加 ”以添加用户分配的托管标识。

    2. 搜索并选择用户分配的托管标识。 然后选择 “添加 ”以将其附加到 Azure Front Door 配置文件。

    3. 所选用户分配的托管标识的名称将显示在 Azure Front Door 配置文件中。

      添加到 Front Door 配置文件的用户分配的托管标识的屏幕截图。

将标识关联到源组

Note

关联只有在满足以下条件时才有效:

  • 源组不包含启用了专用链接的任何源。
  • 运行状况探测协议在源组设置下设为“HTTPS”。
  • 转发协议在路由设置下设置为“仅 HTTPS”。
  • 如果您正在使用规则集中的“路由配置替代”操作,转发协议应设置为“仅 HTTPS”。
  1. 导航到现有的 Azure Front Door 配置文件并打开源组。

  2. 选择一个已配置源的现有源组。

  3. 向下滚动到 “身份验证 ”部分。

  4. 启用 源身份验证

  5. 在系统分配或用户分配的托管标识之间进行选择。

  6. “作用域”字段中输入正确的范围

  7. 单击“更新”

    将标识关联到源组的屏幕截图。

在源资源处提供访问权限

  1. 导航到源资源的管理页。 例如,如果源是 Azure Blob 存储,请转到该存储帐户管理页。

Note

假定你的源是 Azure Blob 存储,后续步骤如下。 如果使用其他资源类型,请确保在角色分配期间选择适当的 作业功能角色 。 否则,对于大多数资源类型,这些步骤保持不变。

  1. 转到 “访问控制”(IAM) 部分,然后单击“ 添加”。 从下拉菜单中选择 “添加角色分配 ”。 访问控制设置的屏幕截图。
  2. 在“角色”选项卡中的“作业函数角色”下,从列表中选择适当的角色(例如存储 Blob 数据读取者),然后选择“下一步”。 “添加角色分配”下的“角色”选项卡的屏幕截图。
  3. 在“ 成员 ”选项卡的 “分配访问权限”下,选择 “托管标识 ”,然后单击“ 选择成员”。 “添加角色分配”下的“成员”选项卡的屏幕截图。
  4. 此时会打开 “选择托管标识 ”窗口。 选择 Front Door 所在的订阅,然后在“托管标识”下拉列表下,选择“Front Door 和 CDN 配置文件”。 在 “选择” 下拉列表下,选择为 Front Door 创建的托管标识。 单击底部的 “选择 ”按钮。
  5. 选择“ 审阅并分配 ”,然后在验证完成后再选择“ 审阅并分配 ”。

使用源身份验证时的提示

  • 如果在源组配置期间遇到错误,
    • 确保健康探测协议设置为 HTTPS。
    • 确保路由设置和/或路由配置替代设置(规则集中)中的转发协议设置为“仅 HTTPS”。
    • 确保源组中不存在启用了专用链接的源。
  • 如果你看到“访问被拒绝; 来自源的响应”,验证是否为托管标识分配了适当的角色来访问源资源。
  • 从用于存储的 SAS 令牌过渡:如果将用于存储的 SAS 令牌过渡到托管身份,请通过按步骤进行的方法,以避免停机。 启用托管标识,将其与源关联,然后停止使用 SAS 令牌。
  • 在源组设置中启用源身份验证后,不应直接从 Front Door 门户下的“标识”设置中禁用/删除标识,也不应直接删除托管标识门户中的用户分配的托管标识。 这样做将导致源身份验证立即失败。 相反,如果要停止使用源身份验证功能或想要删除/禁用标识,请先在源资源的访问控制(IAM)部分下禁用访问限制,以便无需托管标识或 Entra ID 令牌即可访问源。 然后在 Front Door 源组设置下禁用源身份验证。 请等待一段时间以便配置更新,然后根据需要删除或禁用标识。
  • 如果客户端已在 Authorization 标头下发送其自身令牌,该令牌值将被 AFD 用源站身份验证令牌覆盖。 如果希望 AFD 将客户端令牌发送到源,则可以使用服务器变量 {http_req_header_Authorization} 配置 AFD 规则,以在单独的标头下发送令牌。 通过不同标头将客户端令牌发送到源站的规则的屏幕截图。
  • 建议使用不同的托管标识来进行源身份验证,以及从 AFD 到 Azure Key Vault 的身份验证。