【问题标题】:Access Azure AppConfiguration with System managed Identity using DefaultAzureCredential使用 DefaultAzureCredential 访问具有系统托管标识的 Azure AppConfiguration
【发布时间】:2021-03-17 17:29:53
【问题描述】:

我有一个 functionApp (V3) 正在尝试使用 DefaultAzureCredential 访问应用程序配置。我的系统管理用户已打开并具有“应用程序配置数据阅读器”角色。我在调试中本地运行它,因此需要默认凭据。我也有多个租户,所以我必须在 DefaultAzureCredentialOptions 上设置 VisualStudioTenantId 和 SharedTokenCacheTenantId。

访问 Key vault 以获取机密时,凭据有效,但需要设置 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();

}

谢谢!

【问题讨论】:

    标签: azure azure-function-app azure-managed-identity azure-app-configuration


    【解决方案1】:

    感谢 zhenlan here 回答我的问题。我的本地 Visual Studio 用户也需要被授予“应用程序配置数据读取器”才能在本地调试我的代码。

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 2023-02-22
      • 2022-10-24
      • 2021-07-17
      • 1970-01-01
      • 2022-06-14
      • 2020-06-02
      相关资源
      最近更新 更多