从 Key Vault 中提取值以在本地开发 web.config 中使用

问题描述 投票:0回答:1

我想将机密存储在 Azure Key Vault 中,拉入应用程序服务中的应用程序设置(正在运行),当我运行应用程序时,我可以检索数据。

现在我想使用Visual Studio在本地开发中获取这个值

感谢此视频的帮助: https://www.youtube.com/watch?v=vEaCnhvggz0

如果你跳到 9 分钟标记,我就能

  • 使用托管身份将 KV 链接到应用程序服务
  • 在我的 KV 中存储一个值
  • 从 KV 中提取值并用作应用程序设置(在应用程序服务上) - 然后在源中显示为 Key Vault 参考

enter image description here

将此值用作:

@Microsoft.KeyVault(SecretUri=https://keyVaultName/secrets/SecretName/1121283182091283/)

enter image description here

然后在代码中引用 Secret_Value 使用:

在我的 web.config 中:

<add key="Secret_Value" value="localDev" />

C#

var Secret = ConfigurationManager.AppSettings["Secret_Value"];

当我在 VS 上本地运行应用程序时,它会返回“localDev”,但当我在应用程序服务上运行时,它会正确返回来自 KV 的值

如何获取本地开发的价值?因为我不能这样做:

<add key="Secret_Value" value="@Microsoft.KeyVault(SecretUri=https://keyVaultName/secrets/SecretName/1121283182091283/)" />

这可能吗?我知道我可以将 KeyVault 添加为 Nuget 包和 obtian,如下所示:

   var client = new SecretClient(new Uri(keyVaultURL), new DefaultAzureCredential());
        var secret = client.GetSecret(CRM_Secret_KeyVaultName);

但我不想要这个。

我想直接从KV中提取本地webconfig的值,这可以吗?无需编写任何额外代码?感谢您的回复

c# azure web-config azure-keyvault application-settings
1个回答
0
投票

那么有没有办法从本地完成而不编写代码?

  • 我们无法直接在本地配置文件中绑定 Key Vault 引用。

  • 我尝试通过本地参考来设置和检索秘密。

  • 你可以看到它不起作用。

enter image description here

  • 在这种情况下,您可以将本地配置和生产配置分开。

    • 您可以将秘密值直接存储在本地配置文件中(
      Web.config
      )。

enter image description here

您可以在

secrets.xml
中设置秘密值。

enter image description here

  • 并且可以继续使用已部署的应用服务应用程序设置中的密钥保管库引用(您已经完成),无需任何代码。

据我所知,您只能使用代码或仅在已部署的 Azure 应用服务中使用 Key Vault 引用来检索 Azure Key Vault 机密。

感谢@RyanHill-MSFT 的评论。 您还可以参考 GitHub 链接,其中也有相同的解释。

© www.soinside.com 2019 - 2024. All rights reserved.