首页 > 解决方案 > 适用于仅云组的 Microsoft Graph API 筛选器

问题描述

我正用我可怜的键盘砸我的头,试图通过任何东西从 Azure AD 中提取最基本的信息。PowerShell cmdlet 似乎很慢且受限制,尝试使用 REST API。给自己拿了一个令牌,然后去了:

https://graph.microsoft.com/beta/groups

太好了,得到了一些数据。超级不高兴像 lastModified 这样的东西不存在。也不是所有者,也不是任何可以通过 REST 调用过滤的。

我将仅云组同步到我的数据库中以供我们自己开发的工具使用的唯一选择是每次对所有组(当前超过 10K 组)运行完全同步。当然,这只需要大约 30 秒。但是,如果我可以简单地提取仅云组,那将只有大约 1K 个对象。

当我为此哭泣时,超小页面限制是怎么回事?默认情况下为 100,并且能够使用 $top 来达到 999,但是哦,是的,大多数东西不支持一次 100 个对象。至少默认设置为 1000。

在我看来,Graph API 非常有限,而且板线毫无用处。我真的期待更多。

无论如何,我正试图让这样的事情起作用: https://graph.microsoft.com/beta/groups?$filter=onPremisesSyncEnabled eq null 或者 https://graph.microsoft.com/beta/groups?$filter=onPremisesSyncEnabled ne true **因为这里再次砸头,不支持'ne',即使是这样,Azure也不会被设置为1或0,所以它更像返回的值为 true 或 null

有没有更好的 API 可以使用?有什么办法可以得到最后修改的日期吗?鉴于我看到引用的一些增量内容,他们似乎在某处有这些信息。

标签: azure-active-directorymicrosoft-graph-api

解决方案


PowerShell cmdlet 似乎很慢且受限制,尝试使用 REST API。

尽管如果直接查询 API,您肯定会获得更多的灵活性选项,但请记住,AzureAD PowerShell 模块只是围绕 Azure AD Graph API(对于某些 cmdlet,围绕 Microsoft Graph API)的精简包装。

超级不高兴像 lastModified 这样的东西不存在。

没错,Azure AD 今天没有公开这一点。

我将仅云组同步到我的数据库中以供我们自己开发的工具使用的唯一选择是每次对所有组(当前超过 10K 组)运行完全同步。

对于同步场景,一个简单的增量查询很可能会将您得到的结果减少到一个页面,这有望使这成为一个有争议的问题。

无论如何,我正试图让这样的事情起作用:https://graph.microsoft.com/beta/groups?$filter=onPremisesSyncEnabled eq nullhttps://graph.microsoft.com/beta/groups?$filter=onPremisesSyncEnabled ne true

尽管这是一项正在研究的事情,但目前没有任何好的方法可以使用服务端过滤来检索仅限云的组。

有什么办法可以得到最后修改的日期吗?鉴于我看到引用的一些增量内容,他们似乎在某处有这些信息。

不直接,不。您可以获得的最接近的方法是同步(使用增量查询或订阅更改事件),并在您收到更改时记录为上限近似值。或者,您可以解析审核日志以查找您感兴趣的更改事件。


推荐阅读