保護 Azure 金鑰保存庫中的驗證秘密

設定自訂驗證提供者時,您可能會想要將連線密碼儲存在 Azure 金鑰保存庫中。 本文示範如何使用受控識別,將 Azure Static Web Apps 存取權授與自訂驗證秘密金鑰保存庫。

注意

Azure 無伺服器函式不支援直接金鑰保存庫整合。 如果您需要金鑰保存庫與受控函式應用程式的整合,您必須實作金鑰保存庫應用程式程式碼的存取權。

安全性秘密需要有下列專案。

  • 在靜態 Web Apps 實例中建立系統指派的身分識別。
  • 授與金鑰保存庫秘密的身分識別存取權。
  • 從靜態 Web Apps 應用程式設定參考金鑰保存庫秘密。

本文示範如何在生產環境中設定每個專案,以 攜帶您自己的函式應用程式

金鑰保存庫整合不適用於:

注意

使用受控識別僅適用于 Azure Static Web Apps Standard 方案。

必要條件

  • 使用自備函 的現有 Azure Static Web Apps 網站。
  • 具有秘密值的現有金鑰保存庫資源。

建立身分識別

  1. 在Azure 入口網站中開啟靜態 Web Apps 網站。

  2. [設定 ] 功能表下,選取 [ 身分 識別]。

  3. 選取 [ 系統指派] 索引卷 標。

  4. 在 [ 狀態] 標籤底下,選取 [開啟 ]。

  5. 選取 [儲存]。

    Add system-assigned identity

  6. 當確認對話方塊出現時,請選取 [ ]。

    Confirm identity assignment.

您現在可以新增存取原則,以允許靜態 Web 應用程式讀取金鑰保存庫秘密。

新增金鑰保存庫存取原則

  1. 在Azure 入口網站中開啟您的金鑰保存庫資源。

  2. [設定] 功能表下,選取 [ 存取原則 ]。

  3. 選取連結[ 新增存取原則 ]。

  4. 從 [ 秘密許可權] 下拉式清單中,選取 [ 取得 ]。

  5. 在 [ 選取主體卷 標] 旁,選取 [ 無] 選取 的連結。

  6. 在搜尋方塊中,搜尋靜態 Web Apps 應用程式名稱。

  7. 選取符合應用程式名稱的清單專案。

  8. 選取選取

  9. 選取新增

  10. 選取 [儲存]。

    Save Key Vault access policy

存取原則現在會儲存至金鑰保存庫。 接下來,存取將靜態 Web 應用程式關聯至金鑰保存庫資源時要使用的秘密 URI。

  1. [設定 ] 功能表下,選取 [ 秘密 ]。

  2. 從清單中選取您想要的秘密。

  3. 從清單中選取您想要的秘密版本。

  4. 選取 [秘密識別碼 ] 文字方塊結尾的 [複製 ],將秘密 URI 值複製到剪貼簿。

  5. 將此值貼到文字編輯器中,以供稍後使用。

新增應用程式設定

  1. 在Azure 入口網站中開啟靜態 Web Apps 網站。

  2. [設定 ] 功能表下,選取 [ 組態 ]。

  3. 在 [ 應用程式設定] 區段底下,選取 [ 新增 ]。

  4. 在 [名稱] 欄位的文字方塊中 輸入名稱

  5. 在 [值 ] 欄位的文字方塊中 判斷秘密值。

    秘密值是幾個不同值的複合。 下列範本示範如何建置最終字串。

    @Microsoft.KeyVault(SecretUri=<YOUR-KEY-VAULT-SECRET-URI>)
    

    例如,最終字串看起來會像下列範例:

    @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)
    

    或者:

    @Microsoft.KeyVault(VaultName=myvault;SecretName=mysecret)
    

    使用下列步驟來建置完整的秘密值。

  6. 複製上述範本,並將其貼到文字編輯器中。

  7. 將 取代 <YOUR-KEY-VAULT-SECRET-URI> 為您稍早設定的 金鑰保存庫 URI 值。

  8. 複製新的完整字串值。

  9. 將值貼到 [值 ] 欄位的 文字方塊中。

  10. 選取 [確定]。

  11. 選取 應用程式設定 工具列頂端的 [儲存 ]。

    Save application settings

現在,當您的自訂驗證組態參考新建立的應用程式設定時,會使用靜態 Web 應用程式的身分識別,從 Azure 金鑰保存庫擷取此值。

後續步驟