Azure Key Vault 中的应用程序设置配置部分
App Settings config section from Azure Key Vault
我正在使用新库 API 在 Net5 API 上实施 AAD 身份验证 Micorosft.Identity.Web
该库公开了一个只接受 IConfiguration
的方法,其部分如下所示app.settings
来自 Micorosft.Identity.Web
Startup.cs
的身份验证方法
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMicrosoftIdentityWebApiAuthentication(Configuration, "AzureAd");
...
}
app.settings.json
"AzureAd": {
"Domain": "contoso.com",
"Instance": "https://login.microsoftonline.com/",
"TenantId": "00000000-0000-0000-0000-000000000000",
"ClientId": "00000000-0000-0000-0000-000000000000"
},
现在,问题是,我正在使用 Azure 来部署这个 API,当然所有这些敏感值都存储在 Key Vault 中。所以,我想找到一种方法来做到这一点:
services.AddMicrosoftIdentityWebApiAuthentication(new Configuration {
Domain = KeyVaultClient.GetSecret("domain"),
Instance = KeyVaultClient.GetSecret("instance")
TenantId = KeyVaultClient.GetSecret("tenant")
ClientId = KeyVaultClient.GetSecret("client")
});
同时,我找不到在 KeyVault 中创建这个 'section' 的方法,所以我可以这样做
services.AddMicrosoftIdentityWebApiAuthentication(KeyVaultClient.GetSecret("azureadconfig"));
如果我的所有值都在 Key Vault
上,我如何才能归档这些选项之一,或者如何避免依赖 app.settings
编辑备注
我有 Key Vault 作为配置提供程序,但我不知道如何 return 以部分方式使用这些值,正如方法所期望的那样
首先,这些值中的 none 完全是个秘密。所以他们不一定需要在 Key Vault 中。
但是,如果您仍然希望它们存在,则需要将 Key Vault 添加为配置提供程序。
然后 Key Vault 秘密将通过 IConfiguration 可用,就像 appsettings.json.
中的设置一样
我写了一篇关于该主题的文章(也使用托管标识连接到 Key Vault):https://joonasw.net/view/aspnet-core-azure-keyvault-msi。
您可以在 Key Vault 机密名称中使用双破折号,.NET 会将它们视为部分。秘密名称:Section--Itemname
我正在使用新库 API 在 Net5 API 上实施 AAD 身份验证 Micorosft.Identity.Web
该库公开了一个只接受 IConfiguration
的方法,其部分如下所示app.settings
来自 Micorosft.Identity.Web
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
...
services.AddMicrosoftIdentityWebApiAuthentication(Configuration, "AzureAd");
...
}
app.settings.json
"AzureAd": {
"Domain": "contoso.com",
"Instance": "https://login.microsoftonline.com/",
"TenantId": "00000000-0000-0000-0000-000000000000",
"ClientId": "00000000-0000-0000-0000-000000000000"
},
现在,问题是,我正在使用 Azure 来部署这个 API,当然所有这些敏感值都存储在 Key Vault 中。所以,我想找到一种方法来做到这一点:
services.AddMicrosoftIdentityWebApiAuthentication(new Configuration {
Domain = KeyVaultClient.GetSecret("domain"),
Instance = KeyVaultClient.GetSecret("instance")
TenantId = KeyVaultClient.GetSecret("tenant")
ClientId = KeyVaultClient.GetSecret("client")
});
同时,我找不到在 KeyVault 中创建这个 'section' 的方法,所以我可以这样做
services.AddMicrosoftIdentityWebApiAuthentication(KeyVaultClient.GetSecret("azureadconfig"));
如果我的所有值都在 Key Vault
上,我如何才能归档这些选项之一,或者如何避免依赖 app.settings编辑备注
我有 Key Vault 作为配置提供程序,但我不知道如何 return 以部分方式使用这些值,正如方法所期望的那样
首先,这些值中的 none 完全是个秘密。所以他们不一定需要在 Key Vault 中。
但是,如果您仍然希望它们存在,则需要将 Key Vault 添加为配置提供程序。 然后 Key Vault 秘密将通过 IConfiguration 可用,就像 appsettings.json.
中的设置一样我写了一篇关于该主题的文章(也使用托管标识连接到 Key Vault):https://joonasw.net/view/aspnet-core-azure-keyvault-msi。
您可以在 Key Vault 机密名称中使用双破折号,.NET 会将它们视为部分。秘密名称:Section--Itemname