[英]Fetching KeyVault values through App Configuration
I'd like to fetch both App Configuration and KeyVault values directly from IConfiguration.我想直接从 IConfiguration 获取 App Configuration 和 KeyVault 值。 This is from a console application in.Net 7
这是来自 .Net 7 中的控制台应用程序
Program.cs:程序.cs:
var host = Host.CreateDefaultBuilder()
.ConfigureLogging(a => a.AddConsole())
.ConfigureHostConfiguration(config => config.AddEnvironmentVariables())
.ConfigureAppConfiguration(config =>
{
config.ConfigureKeyVault();
})
.ConfigureServices((context, services) =>
{
var env = context.HostingEnvironment;
var startUp = new Startup(env);
startUp.ConfigureServices(services);
startUp.ConfigureConsoleMethods(services);
_serviceProvider = services.BuildServiceProvider(true);
})
.Build();
Extension Method:扩展方法:
public static void ConfigureKeyVault(this IConfigurationBuilder config)
{
var settings = config.Build();
var appConfigConnString = settings.GetConnectionString("AppConfig");
var keyVaultEndpoint = settings.GetValue<string>("KeyVault:Endpoint");
var kvOptions = new DefaultAzureCredentialOptions { ManagedIdentityClientId = settings.GetValue<string>("KeyVault:ClientId") };
config.AddAzureAppConfiguration(options =>
{
options.Connect(appConfigConnString);
options.ConfigureKeyVault(x => x.SetCredential(new DefaultAzureCredential(kvOptions)));
});
}
With this setup, I can fetch my KeyVault keys like this:通过此设置,我可以像这样获取我的 KeyVault 密钥:
services.AddScoped<IApiFactory, ApiFactory>(x =>
{
var keyVault = x.GetRequiredService<IKeyVaultService>();
return new ApiFactory(
keyVault.GetSecret("SomeObj:ClientId"),
keyVault.GetSecret("SomeObj:ClientSecret"));
});
But I would rather get my key's using IConfiguration, like this:但我宁愿使用 IConfiguration 获取我的密钥,如下所示:
services.AddScoped<IApiFactory, ApiFactory>(x =>
{
return new ApiFactory(
this.Configuration.GetValue<string>("SomeObj:ClientId"),
this.Configuration.GetValue<string>("SomeObj:ClientSecret"));
});
How can I fetch my KeyVault values from IConfiguration?如何从 IConfiguration 获取我的 KeyVault 值?
If you set up a key vault reference in Azure App Configuration, the secret retrieved from the key vault should be accessible from IConfiguration
.如果在 Azure 应用程序配置中设置密钥保管库引用,则应该可以从
IConfiguration
访问从密钥保管库检索到的机密。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.