首页 文章

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

提问于
浏览
3

Background
目前我想要在Azure门户中窥探 . 我已经使用应用程序权限实现了它,因此我们可以为这个特定的应用程序提供Azure管理员授予权限 . RBAC与我们的应用程序中的用户角色一起确保只有授权用户才能使用该功能 .

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

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

  • 邀请访客用户加入组织

  • 阅读所有群组

  • 读取目录数据

  • 阅读所有用户的完整 Profiles

The issue
让用户进入租户是没有问题的 . 获取用户列表的MemberOf信息不起作用 . 经过一番搜索后,我发现你的应用程序需要 Directory.Read.All 权限(List memberOf上的文档) . 我添加了权限,对预期的代码进行了测试:没有 . MemberOf属性始终为 null .

Scenarios that do not work:
为所有用户扩展MemberOf:

var allUsers = await _graphClient.Users.Request().Expand(u => u.MemberOf).GetAsync();

为特定用户扩展MemberOf:

var user = await _graphClient.Users[userId].Request().Expand(u => u.MemberOf).GetAsync();

Scenarios that do work:
让所有团体扩大成员:

var groupsWithMembers = await _graphClient.Groups.Request().Expand(g => g.Members).GetAsync();

获取特定用户的MemberOf信息:

var userGroups = await _graphClient.Users[userId].MemberOf.Request().GetAsync();

The question
简而言之:我在这里错过了什么?据我所知,我可以使用像记录的SDK那样确定've set the permissions the application needs, and I'm . 鉴于扩展用户的 Members 属性确实有效,这应该是正确的 .

有任何想法吗?

1 回答

  • 1

    不幸的是,该文档在该主题上有点模糊,但目前, /v1.0 endpoints 不支持扩展 memberOf 属性 . 但是,它受到 /beta endpoints 的支持 .

    我的建议是切换到 /beta 进行此通话 . 通常,指导是避免在 生产环境 中使用Beta . v1.0和Beta实体之间通常存在细微的架构差异,并且此 endpoints 可以(并且确实)在没有警告的情况下接收重大更改 . 但是,在这种特定情况下,它应该不是问题,因为您扩展了v1.0中已存在的属性(虽然目前无法正常运行)/

相关问题