首页 > 解决方案 > AzureAppConfiguration 不适用于 Azure.Identity.TokenCredentials

问题描述

我尝试使用以下代码将 AzureAppConfiguration 添加到我的 dotnet 核心 Web 应用程序:

var azureCredential = new DefaultAzureCredential();
config.AddAzureAppConfiguration(options =>
  options.Connect(new Uri("https://MYCONFIGURATION.azconfig.io"), azureCredential).ConfigureKeyVault(kv =>
    {
      kv.SetCredential(azureCredential);
    })
    ....

这失败并出现以下错误:

Azure.RequestFailedException:服务请求失败。状态:403(禁止)

如果我确实使用连接字符串连接到它AzureAppConfiguration本身,它确实有效:

var azureCredential = new DefaultAzureCredential();
config.AddAzureAppConfiguration(options =>
  options.Connect("Endpoint=https://ac-mobileapps-dev.azconfig.io;Id=MYID;Secret=MYSECRET").ConfigureKeyVault(kv =>
    {
      kv.SetCredential(azureCredential);
    })
    ....

我在本地机器上运行它,所以默认凭据返回我的 AzureCLI 凭据。凭着同样的信用,我可以奔跑

 az appconfig kv list -n MYCONFIGURATION

并检索所有值。

标签: azureazure-app-configurationazure-identity

解决方案


请确保您在应用配置实例的访问控制中授予您的身份应用配置数据读取者或应用配置数据所有者角色,并等待大约 15 分钟以传播权限。

可以在 https://docs.microsoft.com/en-us/azure/azure-app-configuration/concept-enable-rbac找到更多详细信息

顺便说一句,您使用的 CLI 命令不使用 AAD 身份验证。使用该--auth-mode参数指定您希望如何进行身份验证。

az appconfig kv list -n MYCONFIGURATION --auth-mode login

推荐阅读