共用方式為


什麼是 Azure 資源受控識別?

開發人員常見的挑戰是管理用來保護服務間安全通訊的祕密、認證、憑證和金鑰。 手動處理秘密和憑證是安全性問題和中斷的已知來源。 受控識別會排除開發人員管理這些認證的需求。 應用程式可以使用受控識別來取得 Microsoft Entra 權杖,而不需要管理任何認證。

什麼是受控識別?

概括而言,有兩種類型的身分識別:人類和機器/非人類身分識別。 計算機/非人為身分識別是由裝置和工作負載身分識別所組成。 在 Microsoft Entra 中,工作負載身分識別是應用程式、服務主體和受控識別。 如需工作負載身分識別的詳細資訊,請參閱 工作負載身分識別

受控識別是一種身分識別,可指派給 Azure 計算資源(虛擬機(VM)、虛擬機擴展集(VMSS)、Service Fabric 叢集、Azure Kubernetes 叢集或 Azure 所支援的任何應用程式裝載平臺。 在計算資源上指派受控識別之後,即可直接或間接獲得授權,以存取下游相依性資源,例如記憶體帳戶、SQL 資料庫、CosmosDB 等等。 受控識別會取代存取金鑰或密碼等秘密。 此外,受控識別可以取代服務對服務相依性的憑證或其他形式的驗證。

下列影片說明如何使用受控識別:

以下為使用受控識別的一些優點:

  • 不需要管理認證。 你甚至無法存取任何權限。
  • 您可以使用受控識別,驗證支援 Microsoft Entra 驗證的任何資源 (包括您自己的應用程式)。
  • 不需任何額外成本,即可使用受控識別。

受控識別類型

管理式身分識別有兩種:

  • 系統指派。 某些 Azure 資源 (例如虛擬機器) 可讓您直接在資源上啟用受控識別。 當您啟用系統指派的受控識別時:

    • 在 Microsoft Entra ID 中建立了一個特殊類型服務主體,用於該身分識別。 服務主體會與該 Azure 資源的生命週期緊密連結。 刪除 Azure 資源時,Azure 會自動為您刪除服務主體。
    • 根據設計,只有該 Azure 資源可以使用此身分識別,向 Microsoft Entra ID 請求權杖。
    • 您可以授權受控識別存取一或多個服務。
    • 系統指派的服務主體名稱一律與其建立的 Azure 資源名稱相同。 對於部署插槽,其系統指派的受控識別名稱為 <app-name>/slots/<slot-name>
  • 使用者指派。 您也可以建立受控身分識別作為獨立 Azure 資源。 您可以建立使用者指派的受控識別,並將其指派給一或多個 Azure 資源。 啟用使用者指派的受控識別時:

    • 在 Microsoft Entra ID 中建立了一個特殊類型服務主體,用於該身分識別。 服務主體帳戶與使用它的資源是分開管理的。
    • 使用者指派的受控識別可供多個資源使用。
    • 您可以授權受控識別存取一或多個服務。

    使用者指派的受控識別是針對Microsoft服務的建議受控識別類型,可獨立於計算布建,而且可以指派給多個計算資源。

支援系統自動指派之受管理識別的資源可讓您:

  • 在資源層級啟用或停用受控識別。
  • 使用以角色為基礎的存取控制 (RBAC) 來授與權限
  • Azure 活動記錄中,檢視建立、讀取、更新及刪除 (CRUD) 作業。
  • 在 Microsoft Entra ID 登入記錄中檢視登入活動。

如果您改為選擇使用者指派的受控識別:

您可以使用 Azure Resource Manager 範本、Azure 入口網站、Azure CLI、PowerShell 和 REST API 來執行對受控識別的作業。

系統指派和使用者指派的受控識別之間的差異

屬性 系統分配的受控身分識別 使用者指派的受管理身分識別
創造 建立為 Azure 資源 (例如 Azure 虛擬機器或 Azure App Service) 的一部分。 這是作為獨立的 Azure 資源創建的。
生命週期 與用來建立受控識別的 Azure 資源共用生命週期。
當父資源刪除時,受管理的身分也會一併刪除。
獨立的生命週期。
必須明確刪除。
在 Azure 資源之間共用 無法共用。
它只能與單一 Azure 資源相關聯。
可以共用。
使用者指派的同一個受控識別可與多個 Azure 資源相關聯。
常見使用案例 包含在單一 Azure 資源內的工作負載。
需要獨立識別的工作負載。
例如,在單一虛擬機器上執行的應用程式。
在多個資源上執行且可以共用單一身份的工作負載。
需要預先授權給安全資源的工作負載,作為配置流程的一部分。
資源回收頻率高、但權限應保持一致的工作負載。
例如,有多個虛擬機器需要存取相同資源的工作負載。

我該如何使用 Azure 資源的受控識別?

您可以遵循下列步驟來使用受控識別:

  1. 在 Azure 中建立一個受控識別。 您可以選擇系統指派的受控識別或使用者指派的受控識別。
    1. 使用使用者指派的受控識別時,您要將該受控識別指派給「來源」Azure 資源 (例如虛擬機器、Azure 邏輯應用程式或 Azure Web 應用程式)。
  2. 授權受管理的身份可以存取「目標」服務。
  3. 使用該受控識別來存取資源。 在此步驟中,您可以使用 Azure SDK 搭配 Azure.Identity 程式庫。 某些「來源」資源會提供連接器,這些連接器知道如何使用受控識別來進行連線。 在這種情況下,您應使用該身分識別作為「來源」資源的一個特徵。

哪些 Azure 服務支援此功能?

適用於 Azure 資源的受控識別,可用來向支援 Microsoft Entra 驗證的服務進行驗證。 如需支援的 Azure 服務清單,請參閱支援 Azure 資源的受控識別的服務

使用受控識別

受控身份可以直接使用或用作 Microsoft Entra ID 應用程式的聯邦身份認證。

使用受控識別所涉及的步驟如下:

  1. 在 Azure 中建立一個受控識別。 您可以選擇系統指派的受控識別或使用者指派的受控識別。 使用使用者指派的受控識別時,您會將受控識別指派給來源 Azure 資源,例如虛擬機、Azure 邏輯應用程式或 Azure Web 應用程式。
  2. 授權受控識別存取目標服務。
  3. 使用該受控識別來存取資源。 在此步驟中,您可以使用任何 用戶端連結庫。 某些來源資源提供已知如何使用受控身份進行連線的連接器。 在此情況下,您會使用身分識別做為該來源資源的一項功能。

直接使用受控識別

在 Azure 計算資源上執行的服務程式代碼會使用 Microsoft 驗證連結庫 (MSAL) 或 Azure.Identity SDK,從受控識別支援的 Entra ID 擷取受控識別令牌。 此令牌擷取不需要任何秘密,而且會根據程式代碼執行的環境自動進行驗證。 只要受控識別獲得授權,服務程序代碼就可以存取支援 Entra ID 驗證的下游相依性。

例如,您可以使用 Azure 虛擬機 (VM) 作為 Azure 計算。 然後,您可以建立使用者指派的受控識別,並將它指派給 VM。 在 VM 介面上執行的工作負載與 Azure.Identity (或 MSAL) 和 Azure 儲存體客戶端 SDK 互通,以存取儲存帳戶。 使用者指派的受控識別有權存取記憶體帳戶。

在 Entra ID 應用程式中使用受控識別作為同盟身分識別憑證 (FIC)

工作負載身分識別同盟可讓您在 Entra ID 應用程式上使用受控識別作為認證,就像憑證或密碼一樣。 每當需要 Entra ID 應用程式時,這是建議的免憑證方式。 在 Entra ID 應用程式上使用受控識別作為 FIC 時,限制為 20 個 FIC。

作為 Entra ID 應用程式的工作負載可以託管在任何具備受管理身分識別的 Azure 計算環境上。 工作負載會使用受控身分,透過工作負載身分識別聯邦取得可用於交換 Entra ID 應用程式令牌的令牌。 此功能也稱為受控識別為 FIC(同盟身分識別認證)。 如需詳細資訊,請參閱 設定應用程式以信任受控識別

下一步