使用受管理身份來驗證來源

適用於: ✔️ Front Door Standard ✔️ Front Door Premium

透過使用 Microsoft Entra ID 管理身份,您的 Azure Front Door Standard 或 Premium 實例可以安全存取其他 Microsoft Entra 保護的資源,例如 Azure Blob 儲存體,而無需管理憑證。 如需詳細資訊,請參閱什麼是適用於 Azure 資源的受控身分識別?

在你啟用 Azure Front Door 的管理身份,並賦予該受管理身份對你的來源必要的權限後,Front Door 會利用該受管理身份從 Microsoft Entra ID 取得存取權杖,以存取指定的資源。 成功取得令牌後,Front Door 會利用持有人方案在標頭中設定令牌 Authorization 值,然後將請求轉發給來源。 Front Door 會快取權杖,直到它過期為止。

備註

此功能目前不支援在 Front Door 啟用 Private Link 的 Origins。

Azure Front Door 支援兩種類型的受控識別:

  • 系統指派的身分識別:此身分識別與您的服務繫結,如果服務被刪除,此身分識別也會被刪除。 每個服務只能有一個系統指派的身分識別。
  • 使用者指派身份:此身份是獨立的 Azure 資源,您可以指派給您的服務。 每個服務都可以有多個使用者指派的身分識別。

受控識別專屬於裝載 Azure 訂用帳戶的 Microsoft Entra 租用戶。 如果你把訂閱移到另一個目錄,就需要重新建立並重新設定該身份。

先決條件

啟用受控識別

  1. 移至您現有的 Azure Front Door 配置檔。 選取左側功能表中 [安全性] 底下的 [身分識別]。

  2. 選擇系統指派或使用者指派的受控識別。

    • 系統分配:一個與 Azure Front Door 設定檔生命週期綁定的受管理身份。

    • 使用者指派: 一個獨立的管理身份資源,擁有自己的生命週期。

    系統指派

    1. 將 [狀態] 切換為 [開啟],然後選取 [儲存]。

      螢幕擷取畫面:系統指派的受控識別設定頁面。

    2. 出現提示時請選取 [是],以確認為 Front Door 設定檔建立系統受控識別。

    使用者指派

    要使用使用者指派的管理身份,你必須已經建立了一個。 如需建立新身分識別的指示,請參閱建立使用者指派的受控識別。

    1. 在 [使用者指派] 索引標籤中,選取 [+ 新增] 以新增使用者指派的受控識別。

    2. 搜尋並選取使用者指派的受控識別。 然後選取 [新增] 將其附加至 Azure Front Door 設定檔。

    3. 選取的使用者指派受控識別名稱會出現在 Azure Front Door 設定檔中。

      新增至 Front Door 設定檔的使用者指派受控識別的螢幕擷取畫面。

將恆等式與原點群關聯起來

備註

該關聯僅在以下所有條件成立時才有效:

  • 原始群組中沒有任何啟用私有連結的原始群組。
  • 健康探針協定設定 HTTPS 為來源群組設定。
  • 轉發協定設 HTTPS Only 在路由設定中。
  • 轉發協定設定為 HTTPS Only :如果你在規則集中使用動作 Route configuration override 。

警告

如果你在 Azure Front Door 和 Azure 儲存體 之間使用來源驗證,啟用來源驗證的步驟順序非常重要。 如果你沒有按照正確的順序操作,可能會遇到問題。

  1. 進入你現有的 Azure Front Door 設定檔,並開啟 Origin 群組。

  2. 選擇一個已設定起點的原點群組。

  3. 向下捲動至 [ 驗證] 區段。

  4. 啟用 原始驗證。

  5. 選擇系統指派或使用者指派的受控識別。

  6. 在 [範圍] 欄位中輸入正確的範圍。 Scope 欄位指定 Azure Front Door 請求存取權杖的 Microsoft Entra 資源(受眾)。 Microsoft Entra ID 發出的存取權杖包含適用於該目標資源的權限。 作為安全措施,Azure Front Door 只支援明確的來源驗證範圍允許清單。 支援以下瞄準鏡。 如果你指定其他範圍,Azure Front Door 會回傳驗證錯誤並拒絕該設定。

    • https://storage.azure.com/.default
    • api://<GUID>/.default(適用於自訂的 Microsoft Entra 應用程式,包括常見的 API 管理與 App Service 情境)
    • https://appconfig.azure.com/.default
    • https://appconfig-staging.azure.com/.default
  7. 選取 更新。

    將身分識別關聯至原始群組的螢幕快照。

在原點資源提供存取權限

  1. 請前往管理頁面尋找你的起源資源。 例如,如果來源是 Azure Blob 記憶體,請移至該記憶體帳戶管理頁面。

    備註

    後續步驟假設您的來源是 Azure Blob 記憶體。 如果您使用不同的資源類型,請務必在角色指派期間選取適當的 作業函式角色 。 否則,大部分資源類型的步驟會維持不變。

  2. 前往 存取控制(IAM)區塊,選擇新增。 從下拉功能表中選擇 [新增角色指派 ]。

    訪問控制設定的螢幕快照。

  3. 在 [角色] 索引標籤的 [作業函式角色] 下,從清單中選取適當的角色(例如記憶體 Blob 數據讀取器),然後選取 [下一步]。

    [新增角色指派] 底下的 [角色] 索引標籤螢幕快照。

    這很重要

    授與任何身分識別 (包括受控識別) 存取服務的權限時,一律會授與執行所需動作所需的最低權限。 例如,如果使用管理身份來讀取儲存帳號的資料,則不需要授予該身份的權限來同時寫入資料到儲存帳號。 授予額外權限,例如在不需要時將管理身份設為儲存帳號的貢獻者,可以讓透過 Azure Front Door 發出的請求能夠進行寫入和刪除操作。

  4. 在 「成員 」標籤中,在 「指派存取權」 區塊,選擇 「管理身份 」,然後選擇 「選擇成員」。

    [新增角色指派] 底下的 [成員] 索引標籤螢幕快照。

  5. 選取受管理的身分 視窗隨即開啟。 選擇你 Front Door 所在的訂閱方式。 在 「受管理身份 」下拉選單中,選擇 「前門」和「CDN 設定檔」。 在 [選取] 下拉式清單下,選擇為 Front Door 建立的受控識別。 請選擇底部的 選擇 按鈕。

  6. 選取 檢閱並指派,然後在驗證完成後,再次選取 檢閱並指派。

管理並排除來源認證問題

排解設定錯誤

如果您在 origin 群組設定時遇到錯誤,請確認:

  • 健康探針協定設定為 HTTPS。
  • 路由的轉發協定及任何路由設定覆蓋都設定為 僅限 HTTPS 使用。
  • 原始群組中沒有使用 Private Link 的原始群組。

如果來源回傳存取被拒絕的回應,請確認管理身份在來源資源上是否具備所需角色。

從 SAS 代幣遷移

為了避免從共享存取簽章(SAS)令牌遷移 Azure 儲存體 時出現停機:

  1. 啟用 Azure Front Door profile 的管理身份。
  2. 將管理身份與來源群組關聯起來。
  3. 停止使用 SAS 代幣。

停用來源驗證

要在不中斷對來源的存取的情況下停用來源驗證:

  1. 設定來源的 存取控制(IAM)接受不使用管理身份驗證的請求。
  2. 在來源群組中停用來源驗證。
  3. 等待設定變更擴散。
  4. 停用或刪除該受管理身份。

其他考慮

  • Azure Front Door 會用其原始認證憑證覆蓋現有Authorization標頭。 為了保留客戶端標記,設定一個規則,使用 {http_req_header_Authorization} 伺服器變數將標記用獨立標頭傳送。

    透過不同標頭將用戶端令牌傳送至來源的規則螢幕快照。

  • Azure Front Door 在標頭中包含健康探測和終端用戶流量請求的存取權杖Authorization。

  • 在 Azure Key Vault 的 Origin 認證和 Azure Front Door 存取時,使用不同的管理身份。