AzureAppConfiguration 不适用于 Azure.Identity.TokenCredentials

AzureAppConfiguration does not work with 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: Service request failed. Status: 403 (Forbidden)

如果我确实使用连接字符串连接到 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);
    })
    ....

我 运行 在我的本地机器上,所以默认凭据 return 我的 AzureCLI Creds。有了这些相同的信誉,我可以 运行

 az appconfig kv list -n MYCONFIGURATION

并检索所有值。

请确保您在访问控制中授予您的身份应用程序配置数据Reader应用程序配置数据所有者角色您的应用程序配置实例并等待约 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