如何从 Configuration Builder 中的 Key Vault 获取机密值
How to get the secret's value from Key Vault in Configuration Builder
我已经关注了那里的一些文档。所以,设置配置生成器,我添加了这段代码:
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
builder.AddAzureKeyVault($"https://{Configuration.GetSection("Azure")["KeyVaultName"]}.vault.azure.net/", keyVaultClient, new DefaultKeyVaultSecretManager());
现在,我正在尝试从存储在保管库中的命名机密中获取值。
我以为我可以像这样把它拉出来:
builder.getSecret('DevDbPassword');
以便我可以使用 SqlConnectionStringBuilder 更新密码。
有人可以帮忙弄清楚如何获得秘密吗?
谢谢
埃里克
为什么要获取配置生成器中的秘密?您可以通过以下方式保密:
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync("https://<YourKeyVaultName>.vault.azure.net/secrets/AppSecret")
.ConfigureAwait(false);
Message = secret.Value;
有关详细信息,请参阅此 document。
如果你还想在Configuration Builder中获取secret,可以参考这篇sample。
public string Message { get; set; }
public AboutModel(IConfiguration configuration)
{
_configuration = configuration;
}
private readonly IConfiguration _configuration = null;
public void OnGet()
{
Message = "My key val = " + _configuration["AppSecret"];
}
This 从头到尾遍历它(确保您查看的是 C# 版本)。
一旦你像拥有它们一样设置好东西,你的保险库的秘密就会成为应用程序配置的一部分。您需要在需要秘密的任何地方注入一个 IConfiguration
并从中获取它的价值。
我已经关注了那里的一些文档。所以,设置配置生成器,我添加了这段代码:
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
builder.AddAzureKeyVault($"https://{Configuration.GetSection("Azure")["KeyVaultName"]}.vault.azure.net/", keyVaultClient, new DefaultKeyVaultSecretManager());
现在,我正在尝试从存储在保管库中的命名机密中获取值。
我以为我可以像这样把它拉出来:
builder.getSecret('DevDbPassword');
以便我可以使用 SqlConnectionStringBuilder 更新密码。
有人可以帮忙弄清楚如何获得秘密吗?
谢谢 埃里克
为什么要获取配置生成器中的秘密?您可以通过以下方式保密:
AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
var secret = await keyVaultClient.GetSecretAsync("https://<YourKeyVaultName>.vault.azure.net/secrets/AppSecret")
.ConfigureAwait(false);
Message = secret.Value;
有关详细信息,请参阅此 document。
如果你还想在Configuration Builder中获取secret,可以参考这篇sample。
public string Message { get; set; }
public AboutModel(IConfiguration configuration)
{
_configuration = configuration;
}
private readonly IConfiguration _configuration = null;
public void OnGet()
{
Message = "My key val = " + _configuration["AppSecret"];
}
This 从头到尾遍历它(确保您查看的是 C# 版本)。
一旦你像拥有它们一样设置好东西,你的保险库的秘密就会成为应用程序配置的一部分。您需要在需要秘密的任何地方注入一个 IConfiguration
并从中获取它的价值。