針對 Azure Spring 應用程式中的應用程式啟用系統指派的受控識別
注意
基本、標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。
標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps。
本文適用於:✅ 基本/標準 ✅ 企業
本文說明如何使用 Azure 入口網站 和 CLI,為 Azure Spring Apps 中的應用程式啟用和停用系統指派的受控識別。
適用於 Azure 資源的受控識別會將 Microsoft Entra ID 中的自動受控識別提供給 Azure 資源,例如 Azure Spring Apps 中的應用程式。 您可以使用此身分識別來向任何支援 Microsoft Entra 驗證的服務進行驗證,不需要任何您程式碼中的認證。
必要條件
如果您不熟悉 Azure 資源的受控識別,請參閱 什麼是 Azure 資源的受控識別?
- 已佈建的 Azure Spring 應用程式企業版方案執行個體。 如需詳細資訊,請參閱快速入門:使用 Enterprise 方案建置應用程式並將其部署至 Azure Spring 應用程式。
- Azure CLI 2.45.0 版或更新版本。
- 適用於 Azure CLI 的 Azure Spring Apps 擴充功能支援具有 1.0.0 版或更新版本的應用程式使用者指派受控識別。 使用下列命令來移除舊版並安裝最新的擴充功能:
az extension remove --name spring az extension add --name spring
- 已布建的 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
新增系統指派的身分識別
使用系統指派的身分識別建立應用程式需要設定應用程式上的另一個屬性。
若要在入口網站中設定受控識別,請先建立應用程式,然後啟用此功能。
- 像平常一樣,在入口網站中建立應用程式。 在入口網站中瀏覽至該應用程式。
- 向下捲動至 左側瀏覽窗格中的 [設定 ] 群組。
- 選取 [身分識別]。
- 在 [系統指派] 索引標籤內,將 [狀態] 切換為 [開啟]。 選取儲存。
取得 Azure 資源的令牌
應用程式可以使用其受控識別來取得令牌,以存取受 Microsoft Entra 識別符保護的其他資源,例如 Azure 金鑰保存庫。 這些令牌代表存取資源的應用程式,而不是應用程式的任何特定使用者。
您可能需要設定目標資源,才能從您的應用程式啟用存取。 如需詳細資訊,請參閱 將受控識別存取權指派給 Azure 資源或其他資源。 例如,如果您要求令牌來存取 金鑰保存庫,請確定您已新增包含應用程式身分識別的存取原則。 否則,即使您包含令牌,對 金鑰保存庫的呼叫仍會遭到拒絕。 若要深入瞭解哪些資源支援Microsoft Entra 令牌,請參閱 可使用受控識別來存取其他服務的 Azure 服務。
Azure Spring Apps 會與 Azure 虛擬機共用相同的端點以取得令牌。 我們建議使用 Java SDK 或 Spring boot starters 來取得令牌。 如需處理令牌到期和 HTTP 錯誤等重要主題的各種程式代碼和腳本範例和指引,請參閱 如何在 Azure VM 上使用 Azure 資源的受控識別來取得存取令牌。
從應用程式停用系統指派的身分識別
拿掉系統指派的身分識別也會從 entra 識別碼Microsoft刪除它。 刪除應用程式資源會自動從Microsoft Entra ID 移除系統指派的身分識別。
使用下列步驟,從不再需要系統的應用程式中移除系統指派的受控識別:
- 使用與包含 Azure Spring Apps 執行個體的 Azure 訂閱建立關聯的帳戶,登入入口網站。
- 流覽至所需的應用程式,然後選取 [ 身分識別]。
- 在 [系統指派/狀態] 底下,選取 [關閉],然後選取 [儲存]:
從物件識別碼取得用戶端識別碼 (主體識別元)
使用下列命令從物件/主體識別碼值取得用戶端識別碼:
az ad sp show --id <object-ID> --query appId