我正在把头砸到我那可怜的键盘上,试图通过任何方式从Azure AD中提取最基本的信息。 PowerShell cmdlet似乎很慢而且很有限,它在REST API上占了上风。给自己一个令牌,去:
https://graph.microsoft.com/beta/groups
Great获得了一些数据。超级遗憾的是没有诸如lastModified之类的东西。既不是所有者,也不是通过REST调用可过滤的任何内容。
将仅限Cloud的组同步到我的数据库中供我使用的自家工具的唯一选择是每次都对所有组(当前超过1万个组)运行完全同步。当然,这只需要30秒钟。但是,如果我可以简单地只拉云组,则大约只有1K个对象。
虽然我为此而哭,但是超小页面限制又是怎么回事?默认情况下为100,并且可以使用$ top最多获取999,但是哦,是的,大多数事情不支持一次使用100个对象。默认情况下至少使其为1000。
在我看来,Graph API非常有限,并且boardline没有用。我真的期望更多。
无论如何,我正在尝试使类似的东西起作用:
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使用?有什么办法可以获取上次修改的日期?考虑到我看到的一些增量内容,似乎他们在某处有此信息。
答案 0 :(得分:1)
PowerShell cmdlet似乎很慢而且很有限,它对REST API造成了伤害。
尽管直接查询API当然可以为您提供更大的灵活性,但是请记住AzureAD PowerShell模块只是Azure AD Graph API的一个薄包装(对于某些cmdlet,是Microsoft的包装)图形API)。
对诸如lastModified之类的东西不存在感到非常不满意。
是的,Azure AD今天没有公开这一点。
将仅限Cloud的群组同步到我的数据库中供我们使用的自家工具的唯一选择是每次都对所有群组(目前超过1万个群组)运行完全同步。
对于同步方案,简单的delta query最有可能减少您浏览到单个页面的结果,希望这将成为一个争论点。
无论如何,我正在尝试使类似的东西工作:
https://graph.microsoft.com/beta/groups?$filter=onPremisesSyncEnabled eq null
或https://graph.microsoft.com/beta/groups?$filter=onPremisesSyncEnabled ne true
尽管正在对此进行处理,但目前尚没有任何好的方法可以使用服务端过滤来 仅检索云组。
有什么方法可以获取上次修改的日期?考虑到我看到的一些增量内容,似乎他们在某处有此信息。
不直接,不。可以获取的最接近的结果是同步(通过增量查询或通过订阅更改事件),并在收到更改时以上限近似记录。另外,您可以解析审核日志中您感兴趣的变更事件。