保護適用於 Azure Static Web Apps 的 Azure Key Vault 中的驗證祕密
設定自訂驗證提供者時,您可能會想要將連線密碼儲存在 Azure 金鑰保存庫中。 本文示範如何使用受控識別,將自訂驗證祕密金鑰保存庫存取權授與 Azure Static Web Apps。
注意
Azure 無伺服器函式不支援直接金鑰保存庫整合。 如果您需要金鑰保存庫與受控函式應用程式的整合,您必須實作金鑰保存庫應用程式的程式碼存取權。
安全性祕密需要具備下列項目。
- 在您的靜態 Web 應用程式中,建立系統指派的身分識別。
- 授與金鑰保存庫祕密的身分識別存取權
- 從 Static Web Apps 應用程式設定參考金鑰保存庫祕密。
本文示範如何在生產環境中設定每個項目,以攜帶您自己的函式應用程式。
金鑰保存庫整合不適用於:
- 靜態 Web 應用程式的預備版本。 只有在生產環境中才支援金鑰保存庫整合。
- 使用受控函式的靜態 Web 應用程式。
注意
使用受控識別僅適用於 Azure Static Web Apps 標準方案。
必要條件
- 使用自備函式的現有 Azure Static Web Apps 網站。
- 具有祕密值的現有金鑰保存庫資源。
建立身分識別
在 Azure 入口網站中,開啟您的靜態 Web 應用程式。
在 [設定] 底下,選取 [身分識別]。
選取 [系統指派] 索引標籤。
在 [狀態] 標籤下,選取 [開啟]。
選取 [儲存]。
在確認對話方塊出現時,選取 [是]。
您現在可以新增存取原則,以允許靜態 Web 應用程式讀取金鑰保存庫祕密。
新增金鑰保存庫存取原則
在 Azure 入口網站中開啟您的金鑰保存庫資源。
在 [設定] 功能表下,選取 [存取原則]。
選取連結 [新增存取原則]。
從 [祕密授權] 下拉式清單中,選取 [取得]。
在 [選取主體] 標籤旁,選取 [未選取任何項目] 的連結。
在搜尋方塊中,搜尋靜態 Web 應用程式名稱。
選取符合應用程式名稱的清單項目。
選取選取。
選取 [新增]。
選取 [儲存]。
存取原則現在會儲存至金鑰保存庫。 接下來,存取將靜態 Web 應用程式與金鑰保存庫資源建立關聯時要使用的祕密 URI。
在 [設定] 功能表下,選取 [祕密]。
從清單中選擇您所需的祕密。
從清單中選擇您所需的祕密版本。
選取 [祕密識別碼] 文字方塊結尾的 [複製],將祕密 URI 值複製到剪貼簿。
在文字編輯器中貼上值,以供後續使用。
新增應用程式設定
在 Azure 入口網站中開啟您的 Static Web Apps 網站。
在 [設定] 功能表下,選取 [設定]。
在 [應用程式設定] 區段下,選取 [新增]。
在 [名稱] 欄位的文字方塊中輸入名稱。
決定 [值] 欄位文字方塊中的祕密值。
祕密值是幾個不同值的複合。 下列範本示範如何建立最終字串。
@Microsoft.KeyVault(SecretUri=<YOUR_KEY_VAULT_SECRET_URI>)
例如,最終字串會類似下列範例:
@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)
或者:
@Microsoft.KeyVault(VaultName=myvault;SecretName=mysecret)
使用下列步驟來建立完整的祕密值。
複製上述的範本,並將其貼到文字編輯器中。
將
<YOUR_KEY_VAULT_SECRET_URI>
取代為您稍早設定的金鑰保存庫 URI 值。複製新的完整字串值。
將值貼到 [值] 欄位的文字方塊中。
選取 [確定]。
選取 [應用程式設定] 工具列頂端的 [儲存]。
現在,當您的自訂驗證設定參考新建立的應用程式設定時,會使用靜態 Web 應用程式的身分識別,從 Azure 金鑰保存庫擷取此值。