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

.NET 4.6 C#中如何获取Azure AD组的显示名称?

如何在Azure AD JWT声明中包含组显示名称(无需Graph API)

操作步骤

  • 步骤1:配置Azure AD应用程序的组声明

    1. 登录Azure门户,找到你的应用注册。
    2. 进入令牌配置页面,点击添加组声明。
    3. 在弹出的配置窗口中:
      • 选择要包含的组类型(安全组、通讯组或角色)。
      • 在组ID下拉菜单中,选择组显示名称(若包含本地AD同步组,需确保目录扩展属性已同步,或选择同时包含ID和名称)。
      • 可选:勾选将组声明添加到ID令牌或访问令牌,根据需求选择。
    4. 保存配置。
  • 步骤2:更新代码获取组声明
    配置完成后,新生成的JWT令牌会包含groups声明,值为组的显示名称。直接从解析后的令牌中读取即可:

    var handler = new JwtSecurityTokenHandler();
    JwtSecurityToken decodedIdToken = handler.ReadToken(base64IDToken) as JwtSecurityToken;
    // 获取组显示名称列表
    var groupDisplayNames = decodedIdToken.Claims
        .Where(c => c.Type == "groups")
        .Select(c => c.Value)
        .ToList();
    

注意事项

  • 若组数量超过150个,Azure AD默认仅返回组ID,不会返回显示名称。此时需启用组超限设置:在令牌配置的组声明中,勾选为超过限制的组启用增量查询,应用需拥有Directory.Read.All权限,但无需主动调用Graph API,令牌会返回_claim_names和_claim_sources声明,JwtSecurityTokenHandler会自动解析这些增量声明(需.NET Framework 4.7.2+或.NET Core 3.0+)。
  • 确保应用权限配置正确,无需额外Graph API权限,仅需完成上述令牌配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:12:46