将 appsettings.json 文件中的机密存储在 Azure Key Vault 上的 .Net 控制台应用程序中
Store secrets from appsettings.json file in .Net Console Application on Azure Key Vault
我有一个 .Net Core 控制台应用程序,它可以检索原始数据,然后应用 Kusto 查询,最后将它们上传到 azure。我将客户端机密存储在 appsettings.json 文件中。但是,这不是一个好的做法,因为它们永远不应该存储在那里。我想知道如何在 Azure Key Vaults(BlobConnectionString、KustoConnectionString、ClientId、ClientSecret、ApplicationInsights Instrumentation Key)上存储以下信息,这些信息位于 appsettings.json 文件中.我找到了一些关于与 .Net Core Web 应用程序相关的 azure key vault 的文档,但我没有找到任何与 Console Applications 相关的内容。这样做的具体步骤是什么?我应该先创建一个密钥保管库服务吗?还是我应该先做点什么?那么我应该如何处理上面提到的 appsettings.json 中的键的值,是否有一个代码示例可以用来直接检索存储在 Key Vault 中的值,所以当我执行我的代码时它会正常工作和以前一样。
如果有人能告诉我如何做到这一点,以及是否有与同一主题相关的任何以前的代码示例,我将不胜感激。
可以使用 AddAzureKeyVault
将 KeyVault 添加到任何 .net 核心应用程序,然后以与其他配置提供程序完全相同的方式访问它(文件:appsettings.json、UserSecrets、环境变量) .
完整示例:https://docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-6.0
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
config.AddAzureKeyVault(
new SecretClient(
new Uri("Your Key Vault Endpoint"),
new DefaultAzureCredential()),
new AzureKeyVaultConfigurationOptions())
{
...
});
})
我有一个 .Net Core 控制台应用程序,它可以检索原始数据,然后应用 Kusto 查询,最后将它们上传到 azure。我将客户端机密存储在 appsettings.json 文件中。但是,这不是一个好的做法,因为它们永远不应该存储在那里。我想知道如何在 Azure Key Vaults(BlobConnectionString、KustoConnectionString、ClientId、ClientSecret、ApplicationInsights Instrumentation Key)上存储以下信息,这些信息位于 appsettings.json 文件中.我找到了一些关于与 .Net Core Web 应用程序相关的 azure key vault 的文档,但我没有找到任何与 Console Applications 相关的内容。这样做的具体步骤是什么?我应该先创建一个密钥保管库服务吗?还是我应该先做点什么?那么我应该如何处理上面提到的 appsettings.json 中的键的值,是否有一个代码示例可以用来直接检索存储在 Key Vault 中的值,所以当我执行我的代码时它会正常工作和以前一样。
如果有人能告诉我如何做到这一点,以及是否有与同一主题相关的任何以前的代码示例,我将不胜感激。
可以使用 AddAzureKeyVault
将 KeyVault 添加到任何 .net 核心应用程序,然后以与其他配置提供程序完全相同的方式访问它(文件:appsettings.json、UserSecrets、环境变量) .
完整示例:https://docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-6.0
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
config.AddAzureKeyVault(
new SecretClient(
new Uri("Your Key Vault Endpoint"),
new DefaultAzureCredential()),
new AzureKeyVaultConfigurationOptions())
{
...
});
})