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

已配置应用角色等,如何在Microsoft Entra ID令牌中加入角色

解决方案

1. 确认应用角色配置正确性

检查定义角色的API应用清单中appRoles字段,确保:

  • allowedMemberTypes包含User(针对用户分配角色的场景)
  • isEnabled设为true
  • value字段值与后端代码中Roles.GlobalAdmin的取值完全一致(如均为GlobalAdmin)

2. 验证令牌请求的受众匹配

获取令牌时,请求的resource或scope参数必须指向定义应用角色的API应用的客户端ID,确保令牌的aud字段值与该API应用ID一致。若请求的是客户端应用自身的令牌,角色声明不会被注入。

3. 确认权限授予状态

对应应用角色的API权限必须完成管理员同意(应用权限场景)或用户同意(委派权限场景),可在Microsoft Entra ID的应用权限页面检查权限状态是否为“已授予”。

4. 配置API应用的令牌格式

在API应用的清单中,将accessTokenAcceptedVersion设置为2,适配v2版本令牌格式,这是角色声明出现在访问令牌中的必要条件。

5. 重新获取令牌

旧令牌不会自动更新角色信息,需让用户重新登录(或刷新令牌),获取新的访问令牌。

6. 后端认证配置适配

若框架未自动识别roles声明,可在认证配置中明确指定角色声明类型:

builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        options.TokenValidationParameters = new TokenValidationParameters
        {
            RoleClaimType = "roles"
        };
    });

内容的提问来源于stack exchange,提问作者Sergey Nikolaevich Guk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 21:08:11