使用 Microsoft Graph 扩展 MemberOf 不会填充组

ric*_*sch 4 azure azure-active-directory microsoft-graph-api

背景
目前我正致力于在我们自己的门户中实施 Azure Active Directory 用户管理,以便为我们不想在 Azure 门户中窥探的用户启用用户管理。我已经使用应用程序权限实现了它,因此我们可以让 Azure 管理员授予这个特定应用程序的权限。RBAC 与我们应用程序中的用户角色一起确保只有授权用户才能使用该功能。

我们想要启用的一件事是邀请用户加入我们的 Azure Active Directory 租户。我设法实现了那个,一切看起来都很棒。下一步是使用分配的角色实施用户概览。

顺便说一下,这些是必需的(和授予的)权限:

  • 邀请来宾用户加入组织
  • 阅读所有组
  • 读取目录数据
  • 阅读所有用户的完整资料


在租户中获取用户的问题不是问题。获取用户列表的 MemberOf 信息不起作用。经过一番搜索,我发现您的应用程序需要Directory.Read.All权限(关于List memberOf 的文档)。我添加了权限,带着期待测试了代码:什么都没有。MemberOf 属性始终为null

场景是工作:
扩大的memberOf的所有用户:

var allUsers = await _graphClient.Users.Request().Expand(u => u.MemberOf).GetAsync();
Run Code Online (Sandbox Code Playgroud)

为特定用户扩展 MemberOf:

var user = await _graphClient.Users[userId].Request().Expand(u => u.MemberOf).GetAsync();
Run Code Online (Sandbox Code Playgroud)

场景是这样做的工作:
获得扩大成员的所有组:

var groupsWithMembers = await _graphClient.Groups.Request().Expand(g => g.Members).GetAsync();
Run Code Online (Sandbox Code Playgroud)

获取特定用户的 MemberOf 信息:

var userGroups = await _graphClient.Users[userId].MemberOf.Request().GetAsync();
Run Code Online (Sandbox Code Playgroud)

问题
简而言之:我在这里错过了什么?据我所知,我已经设置了应用程序所需的权限,并且我正在使用记录的 SDK。鉴于扩展用户的Members财产确实有效,这应该是正确的。

有任何想法吗?

Mar*_*eur 5

不幸的是,文档对该主题有点含糊,但目前,/v1.0端点不支持扩展memberOf属性。然而,它由/beta端点支持。

我的建议是切换到/beta这次通话。通常指导原则是避免在生产中使用 Beta。v1.0 和 Beta 实体之间通常存在细微的架构差异,并且此端点可以(并且确实)在没有警告的情况下接收重大更改。但是,在这种特定情况下,这应该不是问题,因为您扩展了 v1.0 中已经存在的属性(尽管当前无法使用)/