gpt4 book ai didi

c# - Azure KeyVault : Azure. Identity.CredentialUnavailableException:DefaultAzureCredential 无法从包含的凭据中检索 token

转载 作者:行者123 更新时间:2023-12-03 18:13:45 37 4
gpt4 key购买 nike

我正在尝试将面向 .net 框架的 aspnet core 应用程序与 Azure Keyvault 连接。在支持身份的新 Azure 虚拟机上,一切正常,但此应用程序托管在不支持身份的经典 Azure 虚拟机上。我创建了系统环境变量 AzureServiceAuthConnectionString,它与 Azure keyvault 的其他 .net 框架应用程序已经在使用并且运行良好。

查看我的标准输出日志,我每次都会遇到以下异常。

Azure.Identity.CredentialUnavailableException: DefaultAzureCredential failed to retrieve a token from the included credentialsEnvironmentCredential authentication unavailable. Environment variables are not fully configuredManagedIdentityCredential authentication unavailable, the requested identity has not been assigned to this resource.

我在启动中使用以下代码:

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseApplicationInsights(ConfigurationManager.AppSettings["applicationInsightsInstrumentationKey"])
.ConfigureKestrel(options => options.AddServerHeader = false)
.UseIISIntegration()
.ConfigureAppConfiguration((context, config) =>
{
var vaultName = ConfigurationManager.AppSettings["VaultName"];
if (!string.IsNullOrEmpty(vaultName))
{
var azureServiceTokenProvider = new AzureServiceTokenProvider();
var keyVaultClient = new KeyVaultClient(
new KeyVaultClient.AuthenticationCallback(
azureServiceTokenProvider.KeyVaultTokenCallback));

config.AddAzureKeyVault(
$"https://{vaultName}.vault.azure.net/",
keyVaultClient,
new DefaultKeyVaultSecretManager());
}
})
.UseStartup<Startup>();

并在 web.config 中添加以下项目:

   <configSections>
<section name="configBuilders" type="System.Configuration.ConfigurationBuildersSection, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false"/>
</configSections>
<configBuilders>
<builders>
<add name="AzureKeyVault" vaultName="<#= this.VaultName #>" type="Microsoft.Configuration.ConfigurationBuilders.AzureKeyVaultConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Azure, Version=2.0.0.0, Culture=neutral" vaultUri="https://<#= this.VaultName #>.vault.azure.net" />
</builders>
</configBuilders>
<connectionStrings configBuilders="AzureKeyVault">
<add name="ConnectionString" connectionString="" providerName="System.Data.SqlClient"/>
</connectionStrings>

最佳答案

如果 Visual Studio 由于某种原因失去了 Azure 服务身份验证连接,或者您的实际 AD 凭据已更改(例如密码更改),也可能会发生此错误。

在这种情况下,只需再次登录即可解决此问题:

在 Visual Studio 中,转到“工具”>“选项”。展开“Azure 服务身份验证”>“帐户选择”。如果您看到“重新输入您的凭据”链接,请单击它并再次登录。如果没有,请尝试通过右上角的 Visual Studio 配置文件进行常规注销+登录。

关于c# - Azure KeyVault : Azure. Identity.CredentialUnavailableException:DefaultAzureCredential 无法从包含的凭据中检索 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62817337/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com