为 Azure Spring Apps 中的应用程序启用系统分配的托管标识
备注
基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。
本文介绍如何使用 Azure 门户和 CLI 为 Azure Spring Apps 中的应用程序启用和禁用系统分配的托管标识。
Azure 资源的托管标识在 Microsoft Entra ID 中为 Azure 资源(例如 Azure Spring Apps 中的应用程序)提供自动托管标识。 可以使用此标识向支持 Microsoft Entra 身份验证的任何服务进行身份验证,这样就无需在代码中插入凭据了。
如果你不熟悉 Azure 资源托管标识,请参阅什么是 Azure 资源托管标识?
- 已预配的 Azure Spring Apps 实例。 有关详细信息,请参阅快速入门:将第一个应用程序部署到 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
若要创建带有系统分配的标识的应用,需在应用程序上设置另一属性。
若要在门户中设置托管标识,请首先创建应用,然后启用该功能。
- 按常规在门户中创建应用。 在门户中导航到该应用。
- 在左侧导航窗格中向下滚动到“设置”组。
- 选择“标识”。
- 在“系统分配的”选项卡中,将“状态”切换为“启用” 。 选择“保存”。
应用可使用其托管标识获取令牌,来访问其他受 Microsoft Entra ID 保护的资源(例如 Azure Key Vault)。 这些令牌代表访问资源的应用程序,而不是应用程序的任何特定用户。
你可能需要将目标资源配置为允许从应用程序进行访问。 有关详细信息,请参阅向 Azure 资源或其他资源分配托管标识访问权限。 例如,如果请求用于访问 Key Vault 的令牌,请确保已添加包含应用程序标识的访问策略。 否则,对 Key Vault 的调用会被拒绝,即使其中包含令牌。 若要详细了解哪些资源支持 Microsoft Entra 令牌,请参阅可以使用托管标识访问其他服务的 Azure 服务。
Azure Spring Apps 与 Azure 虚拟机使用同一终结点来获取令牌。 建议使用 Java SDK 或 Spring Boot Starter 获取令牌。 有关处理令牌过期和 HTTP 错误等重要主题的各种代码和脚本示例和指南,请参阅如何使用 Azure VM 上的 Azure 资源的托管标识来获取访问令牌。
移除系统分配的标识后,也会将其从 Microsoft Entra ID 中删除。 删除应用资源会自动从 Microsoft Entra ID 中移除系统分配的标识。
使用以下步骤从不再需要系统分配的托管标识的应用中删除该标识:
- 使用与包含 Azure Spring Apps 实例的 Azure 订阅关联的帐户登录到门户。
- 导航到所需的应用程序,然后选择“标识”。
- 在“系统分配”/“状态”下,选择“关闭”,然后选择“保存” :
使用以下命令从对象/主体 ID 值获取客户端 ID:
az ad sp show --id <object-ID> --query appId