使用Graph API在Administrative Unit创建组遇两类技术问题求助
问题解答
1. Graph SDK 4.52.0中找不到AddAsync()方法的解决方案
在Graph SDK v4.x版本中,添加组到Administrative Unit(AU)成员集合的API调用方式已调整,AddAsync方法不再适用于该场景。你可以通过以下两种方式实现需求:
方式一:通过References端点添加现有组到AU
using Microsoft.Graph.Models; // 假设newGroupObject是已创建的组对象 await graphClient.Directory.AdministrativeUnits["{administrativeUnit-id}"].Members.References .Request() .PostAsync(new ReferenceRequest { Id = newGroupObject.Id });
方式二:创建组时直接关联到AU(更高效)
如果需要创建组并同时将其加入AU,可以在创建组时指定AdministrativeUnitIds属性,无需单独执行添加操作:
var newGroup = new Group { DisplayName = "AU内的新组", MailNickname = "augroup001", SecurityEnabled = true, // 指定要关联的AU ID AdministrativeUnitIds = new List<string> { "{administrativeUnit-id}" } }; await graphClient.Groups.Request().AddAsync(newGroup);
2. GroupAdministrator角色未生效的原因
你遇到的权限问题核心在于角色权限范围与操作所需权限不匹配:
- 当调用
https://graph.microsoft.com/v1.0/directory/administrativeUnits/{id}/members/添加组到AU时,该操作本质是修改Administrative Unit资源的成员集合,需要的是对AU的写入权限。 - Group Administrator角色(无论是全局角色还是限定在AU范围内的角色)的权限仅覆盖组的生命周期管理(创建、编辑、删除组)及组成员管理,不包含修改Administrative Unit资源的权限。
Directory.Read.All仅为读取权限,无法支持写入操作;而AdministrativeUnit.ReadWrite.All权限明确授予了对AU资源的读写权限,因此可以成功执行操作。
另外需确认:你是否为服务主体分配了限定目标AU范围的Group Administrator角色?即使是全局Group Administrator角色,依然没有修改AU资源的权限,无法替代AdministrativeUnit.ReadWrite.All的作用。
内容的提问来源于stack exchange,提问作者parth shethia
相关产品推荐
相关产品推荐

