azure - 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
并检索所有值。
解决方案
请确保您在应用配置实例的访问控制中授予您的身份应用配置数据读取者或应用配置数据所有者角色,并等待大约 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
推荐阅读
- python - 从网站中提取大量数据
- swift - 在 Swift5 中获取部分字符串
- android - Google Admob api 创建了太多线程
- python - 如何在 Python 中删除父目录的名称
- java - 我的成员变量在 Eclipse 中用红色下划线
- java - 如何在 JavaFX 中默认检查单选按钮?
- alert - 如何将随机策略转换为 Pine Script 中的警报?
- delphi - Delphi - 在 64 位运行后,界面上的 TImage 内容可能会丢失
- c - After removing an employee, then adding a new employee. When listing all the employees save, the new employee does not show up
- c - &st[3]-st 在 printf("%ld", &st[3]-st) 中的含义