在 Azure Spring Apps 中為應用程式啟用系統指派的受控識別

注意

Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但在我們努力更新資產,例如螢幕快照、影片和圖表時,您會在某些地方看到舊名稱一段時間。

本文適用於: ✔️基本/標準✔️企業

本文說明如何使用 Azure 入口網站 和 CLI,為 Azure Spring Apps 中的應用程式啟用和停用系統指派的受控識別。

Azure 資源的受控識別會將 Microsoft Entra 識別碼中的自動受控識別提供給 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
    
  • 已布建的 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
    

新增系統指派的身分識別

使用系統指派的身分識別建立應用程式需要設定應用程式上的另一個屬性。

若要在入口網站中設定受控識別,請先建立應用程式,然後啟用此功能。

  1. 像平常一樣,在入口網站中建立應用程式。 在入口網站中流覽至它。
  2. 向下捲動至左側瀏覽窗格中的 設定 群組。
  3. 選取 [身分識別]。
  4. 在 [系統指派] 索引標籤內,將 [狀態] 切換為 [開啟]。 選取 [儲存]。

Screenshot of Azure portal showing the Identity screen for an application.

取得 Azure 資源的令牌

應用程式可以使用其受控識別來取得令牌,以存取受 Microsoft Entra ID 保護的其他資源,例如 Azure 金鑰保存庫。 這些令牌代表存取資源的應用程式,而不是應用程式的任何特定使用者。

您可能需要 設定目標資源,以允許從應用程式存取。 例如,如果您要求令牌來存取 金鑰保存庫,請確定您已新增包含應用程式身分識別的存取原則。 否則,即使您包含令牌,您對 金鑰保存庫 的呼叫仍會遭到拒絕。 若要深入瞭解哪些資源支援 Microsoft Entra 令牌,請參閱 可使用受控識別來存取其他服務的 Azure 服務

Azure Spring Apps 會與 Azure 虛擬機共用相同的端點以取得令牌。 我們建議使用 Java SDK 或 Spring boot starters 來取得令牌。 如需處理令牌到期和 HTTP 錯誤等重要主題的各種程式代碼和腳本範例和指引,請參閱 如何在 Azure VM 上使用 Azure 資源的受控識別來取得存取令牌

從應用程式停用系統指派的身分識別

拿掉系統指派的身分識別也會從 Microsoft Entra ID 中刪除它。 刪除應用程式資源會自動從 Microsoft Entra ID 移除系統指派的身分識別。

使用下列步驟,從不再需要系統的應用程式中移除系統指派的受控識別:

  1. 使用與包含 Azure Spring Apps 實例的 Azure 訂用帳戶相關聯的帳戶登入入口網站。
  2. 流覽至所需的應用程式,然後選取 [ 身分識別]。
  3. 在 [系統指派/狀態] 底下,選取 [關閉],然後選取 [儲存]:

Screenshot of Azure portal showing the Identity screen for an application, with the Status switch set to Off.

從物件識別碼取得用戶端識別碼 (主體識別元)

使用下列命令從物件/主體識別碼值取得用戶端識別碼:

az ad sp show --id <object-ID> --query appId

下一步