使用DefaultAzureCredential访问具有系统管理标识的Azure AppConfiguration



我有一个函数App(V3(,它正试图使用DefaultAzureCredential访问应用程序配置。我的系统管理用户被打开;应用程序配置数据读取器";角色我在本地调试中运行这个,因此需要一个默认凭据。我还有多个Tenant,所以我必须在DefaultAzureCredentialOptions上设置VisualStudioTenantId和SharedTokenCacheTenantId。

该凭据在访问密钥保管库以获取机密时有效,但需要设置SharedTokenCacheTenantId。

当连接到应用程序配置时;服务请求失败。状态:403(禁止(。

参见以下代码:

public override async void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
{
var credOptions = new DefaultAzureCredentialOptions();
var tenantId = Environment.GetEnvironmentVariable("Tenant_Id");
credOptions.VisualStudioTenantId = tenantId;

credOptions.SharedTokenCacheTenantId = tenantId;
var cred = new DefaultAzureCredential(credOptions);
/*Works but requires SharedTokenCacheTenantId*/
var secretClient = new SecretClient(new Uri(vaultURI), cred);
var secret = await secretClient.GetSecretAsync("<secret name>");
/*Does not work - forbidden*/
builder.ConfigurationBuilder.AddAzureAppConfiguration(options =>
{
options.Connect(new Uri(appConfigURI), cred);

}).Build();
}

谢谢!

感谢珍兰回答了我的问题。我的本地Visual studio用户需要被授予";应用程序配置数据读取器";以及在本地调试我的代码。

相关内容

  • 没有找到相关文章

最新更新