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

为 Azure Spring Apps 中的应用程序管理用户分配的托管标识

注意

Azure Spring Apps 是 Azure Spring Cloud 服务的新名称。 虽然该服务有新名称,但一些地方仍会使用旧名称,我们仍在更新屏幕截图、视频和图形等资产。

本文适用于:✔️ 基本版/标准版 ✔️ 企业版

本文介绍如何使用 Azure 门户和 Azure CLI 为 Azure Spring Apps 中的应用程序分配或删除用户分配的托管标识。

Azure 资源的托管标识在 Microsoft Entra ID 中为 Azure 资源(例如 Azure Spring Apps 中的应用程序)提供自动托管标识。 可以使用此标识向支持 Microsoft Entra 身份验证的任何服务进行身份验证,这样就无需在代码中插入凭据了。

先决条件

  • 已预配的 Azure Spring Apps Enterprise 计划实例。 有关详细信息,请参阅 快速入门:使用企业计划生成应用并将其部署到 Azure Spring Apps。
  • Azure CLI 2.45.0 或更高版本
  • 适用于 Azure CLI 的 Azure Spring Apps 扩展支持应用用户分配的托管标识(1.0.0 或更高版本)。 使用以下命令删除以前的版本并安装最新扩展:
    az extension remove --name spring
    az extension add --name spring
    
  • 至少一个已配置的用户分配托管标识。 有关详细信息,请参阅管理用户分配的托管标识

创建应用程序时分配用户分配的托管标识

使用以下命令同时创建应用程序并分配用户分配的托管标识:

az spring app create \
    --resource-group <resource-group-name> \
    --name <app-name> \
    --service <service-instance-name> \
    --user-assigned <space-separated user identity resource IDs to assign>

将用户分配的托管标识分配给现有应用程序

分配用户分配的托管标识需要在应用程序上设置另一属性。

若要将用户分配的托管标识分配给 Azure 门户中的现有应用程序,请执行以下步骤:

  1. 正常导航到 Azure 门户中的应用程序。
  2. 在左侧导航窗格中向下滚动到“设置”组。
  3. 选择“标识”。
  4. 在“用户分配”选项卡中,选择“添加”。
  5. 从右侧面板中选择一个或多个用户分配的托管身份,然后从该面板中选择“添加”。

获取 Azure 资源的令牌

应用程序可使用其托管标识获取令牌,来访问其他受 Microsoft Entra ID 保护的资源(例如 Azure Key Vault)。 这些令牌代表访问资源的应用程序,而不是应用程序的任何特定用户。

可能需要配置目标资源,允许从应用程序进行访问。 有关详细信息,请参阅使用 Azure 门户为托管标识分配对资源的访问权限。 例如,如果请求用于访问 Key Vault 的令牌,请确保已添加包含应用程序标识的访问策略。 否则,对 Key Vault 的调用会被拒绝,即使其中包含令牌。 若要详细了解支持 Microsoft Entra 令牌的资源,请参阅支持 Microsoft Entra 身份验证的 Azure 服务

Azure Spring Apps 与 Azure 虚拟机使用同一终结点来获取令牌。 建议使用 Java SDK 或 Spring Boot Starter 获取令牌。 有关处理令牌过期和 HTTP 错误等重要主题的各种代码和脚本示例和指南,请参阅如何使用 Azure VM 上的 Azure 资源的托管标识来获取访问令牌

从现有应用中删除用户分配的托管标识

删除用户分配的托管标识会删除标识与应用程序之间的分配,但不会删除标识本身。

要从不再需要的应用程序中删除用户分配的托管标识,请执行以下步骤:

  1. 使用与包含 Azure Spring Apps 实例的 Azure 订阅关联的帐户登录到 Azure 门户。
  2. 导航到所需的应用程序,然后选择“标识”。
  3. 在“用户分配”下,选择目标标识,然后选择“删除”。

限制

有关用户分配的托管标识限制,请参阅 的配额和服务计划

后续步骤