Pau*_*els 4 azure azure-keyvault asp.net-core
我正在尝试将 .Net Core 3.1 应用程序连接到 Azure Key Vault。我已按照快速入门教程进行操作,但收到以下错误:
Microsoft.Extensions.Configuration.AzureAppConfiguration.KeyVaultReferenceException:'DefaultAzureCredential 身份验证失败..ErrorCode:, Key:Authentication:Twitter:ConsumerAPIKey
内部异常是:
MsalServiceException:AADSTS70002:客户端不存在或未为消费者启用
CreateHostBuilder 方法如下所示:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.ConfigureAppConfiguration((hostingContext, config) =>
{
var settings = config.Build();
config.AddAzureAppConfiguration(options =>
{
options.Connect(settings["ConnectionStrings:AppConfig"])
.ConfigureKeyVault(kv =>
{
kv.SetCredential(new DefaultAzureCredential());
});
});
})
.UseStartup<Startup>();
});
Run Code Online (Sandbox Code Playgroud)
除了一篇与使用多个凭据相关的帖子(我不是)之外,我在网上几乎找不到对此的参考。
任何人都可以给我一个前进的方向:一些关于可能导致它的原因的线索吗?
编辑
以下似乎有效:
var defaultAzureCredentialsOptions = new DefaultAzureCredentialOptions()
{
SharedTokenCacheTenantId = <tenant id>,
SharedTokenCacheUsername = <my azure username>,
ExcludeInteractiveBrowserCredential = false,
ExcludeEnvironmentCredential = false,
InteractiveBrowserTenantId = <tenant id>
};
config.AddAzureAppConfiguration(options =>
{
options.Connect(settings["ConnectionStrings:AppConfig"])
.ConfigureKeyVault(kv =>
{
kv.SetCredential(new DefaultAzureCredential(defaultAzureCredentialsOptions));
});
});
Run Code Online (Sandbox Code Playgroud)
虽然这确实有效(就目前而言),但我现在已经硬编码了租户 ID 和我的用户名;当我启动网站时,会出现一个弹出窗口,要求我登录。
它DefaultAzureCredential会经过许多凭据,例如推荐用于 Azure 服务的托管身份,因为它更安全(无共享访问令牌)。
但是,您可以使用为您的应用程序甚至本地开发期间设置的环境变量,即:
list您get在示例中如何使用它们如果您使用 Azure.Identity 的新预览版,它还支持 Azure CLI、Visual Studio 和其他开发环境凭据。例如,如果您使用 Azure CLI,一旦使用az login,DefaultAzureCredential就可以正常工作。
| 归档时间: |
|
| 查看次数: |
3724 次 |
| 最近记录: |