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

如何使用Graph Service Client根据组ID获取Azure AD组名称

问题分析与修复

你的代码核心逻辑错误:当前代码是查询指定ID组的成员列表,然后从成员中提取第一个组类型对象的名称,这自然会返回错误的组(返回的是该组的成员组,而非你要查询的目标组本身)。

正确实现思路

要获取指定ID对应的组名称,直接查询该组的自身信息即可,无需访问Members端点。

修正后的代码

List<AccessGroup> accessGroups = new List<AccessGroup>();

try
{
    foreach(var id in group_ids)
    {
        // 直接获取指定ID的组对象
        var targetGroup = await graph_client.Groups[id].Request().GetAsync();
        
        // 提取组的显示名称,处理空值情况
        string group_name = targetGroup?.DisplayName ?? string.Empty;

        accessGroups.Add(new AccessGroup { Id = id, Name = group_name });
    }
}
catch (Exception ex)
{
    Logger.Warning(ex.Message);
    Logger.Warning("Error getting group name from azure security groups");
    throw;
}

关键说明

  • 直接调用graph_client.Groups[id]获取目标组的完整信息,而非查询其成员
  • 使用?.DisplayName ?? string.Empty处理组不存在或名称为空的边界情况
  • 单个组查询无需分页逻辑,因为Groups[id]返回的是单个资源

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:05:17