You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor应用使用登录用户凭据访问Azure App Configuration实现与排错

Azure App Configuration 调用403问题修复方案

你遇到的403问题是由权限配置错误、代码配置遗漏、角色分配不匹配三类问题共同导致的,按以下步骤修复即可:

1. 修正Azure AD应用的API权限配置

  • 进入Azure AD应用注册的「API权限」页面,删除无关的冗余权限
  • 点击「添加权限」,在API列表中选择Azure 应用配置服务(不要选Microsoft Graph)
  • 选择「委派权限」分类,勾选user_impersonation权限,该权限是应用代表登录用户访问App Configuration数据的必需权限
  • 点击「授予管理员同意」完成权限生效配置,跳过这一步会导致普通用户无法获取有效权限的令牌

2. 修正代码中的令牌申请范围

你当前代码中仅申请了Microsoft Graph的User.Read权限,没有加入App Configuration的访问范围,修改Program.cs中对应代码,补充App Configuration的.default范围:

.EnableTokenAcquisitionToCallDownstreamApi(new []{
    "User.Read",
    "https://<替换为你的App Configuration资源名称>.azconfig.io/.default"
})
.AddInMemoryTokenCaches();

注意:填写的资源URI必须和你App Configuration实例的终结点完全匹配,结尾不要添加多余斜杠,否则会导致获取的令牌受众不匹配,直接触发403。

3. 修正RBAC角色分配

你当前分配的Contributor角色属于Azure管理平面(ARM)权限,仅支持管理资源的创建、删除、配置等运维操作,不具备访问App Configuration存储内键值数据的数据平面权限:

  • 进入目标App Configuration资源的「访问控制(IAM)」页面
  • 添加角色分配:如果仅需要读取配置,选择App Configuration 数据读取者角色;如果需要新增、修改、删除配置,选择App Configuration 数据所有者角色
  • 将角色分配给你测试使用的用户账号,等待5分钟左右等待权限生效

4. 修复代码中的笔误

你贴出的ConfigurationService.cs存在两处明显笔误,会导致运行时逻辑异常,修正后代码如下:

using Azure.Data.AppConfiguration;
using Microsoft.Extensions.Options;
using Microsoft.Identity.Web;

public class ConfigurationService
{
    private readonly ConfigurationClient _client;

    public ConfigurationService(IOptions<ConfigurationSettings> options, ITokenAcquisition tokenAcquisition)
    {
        _client = new ConfigurationClient(new Uri(options.Value.Endpoint), new TokenAcquisitionTokenCredential(tokenAcquisition));
    }

    public async Task<ConfigurationSetting> GetSettings()
    {
        // 之前错误调用了不存在的静态Client,改为调用注入的实例_client
        return await _client.GetConfigurationSettingAsync("key");
    }
}

验证标准

修改完成后重启应用,重新登录触发令牌刷新,拿到的访问令牌解码后满足两个条件即可正常调用:

  • aud(令牌受众)字段值为https://azconfig.io或你对应App Configuration实例的资源URI
  • scp(委派权限)字段包含user_impersonation值

内容的提问来源于stack exchange,提问作者Erik Buter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 05:01:05