microsoft-graph-api - 如何对 AAD 租户中所有服务主体的导出进行分区?
问题描述
我们需要定期导出有关 AAD 租户的所有服务主体的信息。我们预计这个数字会很大,所以我们需要对导出进行分区。当从 Microsoft Graph 导出用户时,我们能够根据mailNickname
using startswith(mailNickname, '<letter>')
as filter 的首字母进行分区,但尝试appId
使用id
ServicePrincipals 时会出现Request_UnsupportedQuery
. 我们可以使用另一种方法来并行化数据导出吗?
请求前:https://graph.microsoft.com/beta/servicePrincipals?$filter=accountEnabled eq true and startswith(appId, '0')&$select=id,appId,displayName&$top=999
解决方案
您正在尝试的与我在此处分享的方法类似(请随意尝试该代码):
Graph 资源通常不支持对 id 进行过滤。在我的简短实验中,我能够使用 servicePrincipal 的 displayName 对集合进行分区。
但是请注意,这种方法并不能保证统一分区。此外,在您的场景(定期完全导出)中,这种优化是否必要?
建议:考虑使用Graph的delta query做一次full export,然后只拾取delta的变化。如果您期望高容量但有限的资源流失,这可能是一个更好的优化。
https://graph.microsoft.com/beta/servicePrincipals/delta
推荐阅读
- flutter - 按下按钮后更新文本 - 在 Flutter 中
- java - 另一个属性键中使用的 Spring-boot 属性值
- windows - Python3.7 & Windows:交互模式下文档字符串中的 unicode 字符不正确
- pandas - 考虑不平衡的分层抽样分为3组
- python - 使用 Shapely 在一个方向上扩展矩形多边形,直到它与另一个多边形相交
- reactjs - 带有功能组件的 React JS 上下文 API 不起作用
- javascript - 如何使用 Typescript 键入 ref 参数
- javascript - 如何获取跨度类标题值的值
- json - 来自寄存器变量的 ansible 访问项目
- database - 如何使用 Oracle dbms_ldap 或 dbms_ldap_utl 从 LDAP 获取操作属性?