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

如何在Azure Access Token中获取角色?Angular MSAL场景求助

如何让Azure AD的Access Token包含角色信息(Angular MSAL场景)

你当前能从ID Token中获取角色,但Access Token里无相关信息,可按以下步骤排查解决:

  • 确认API应用的角色配置与权限同意
    在Azure AD的API应用注册中,先确保已在「应用角色」菜单下定义好所需角色(如Admin、User);同时检查客户端应用是否已授予并完成这些权限的同意操作——应用权限需管理员同意,委托权限需用户同意。

  • 请求Access Token时指定正确的API范围
    Angular MSAL获取Access Token时,必须传入目标API的专属范围(而非仅OIDC默认范围),示例代码:

    this.authService.acquireTokenSilent({
      scopes: ['api://{你的API应用ClientID}/access_as_user'] // 替换为实际API范围
    }).then(response => {
      console.log(response.accessToken); // 解码此令牌查看角色是否存在
    });
    

    若未指定API范围,Azure AD不会将角色注入Access Token。

  • 验证API应用的令牌配置
    进入API应用的「令牌配置」菜单,确认已添加roles声明并设置为「发出此声明」,确保角色声明会被包含在针对该API的Access Token中。

  • 检查角色分配对象

    • 若使用应用权限(客户端凭证流):需在API应用对应的「企业应用」→「用户和组」中,将客户端应用的服务主体分配到对应角色。
    • 若使用委托权限:需在API应用对应的「企业应用」→「用户和组」中,将目标用户/组分配到对应角色。

内容的提问来源于stack exchange,提问作者the programmer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 19:49:51