Azure AD Graph API是否支持对用户进行批处理?例如,如果我想更新组织中几百个用户的位置,我有什么方法可以做到这一点?我能找到的唯一信息是这里描述的内容:https://msdn.microsoft.com/en-us/library/azure/ad/graph/howto/azure-ad-graph-api-batch-processing
但据我了解,您只能在给定批处理操作中对单个用户实体进行批处理操作,甚至每个更改集限制为5次操作。所以我唯一的选择似乎是按顺序调用API来更新列表中的每个用户。我无法找到任何可能由Microsoft强制执行的官方记录的速率限制。所以我不确定这种方法是否有效。有更好的方法吗?
答案 0 :(得分:0)
是的,Azure AD Graph API支持对用户进行批处理。请参阅this code sample,查看该代码示例中的CreateUsersTest
函数。要使该示例正常运行,您需要为客户端应用添加Read and write directory data
app权限:
另一种方法是使用powershell使用批量导入过程添加多个用户:
首先使用适当的属性创建一个csv文件,如:
连接服务:
PS C:\WINDOWS\system32> connect-msolservice
从csv文件导入用户:
$users = Import-Csv E:\a.csv
使用New-MsolUser
命令创建用户。
$users | ForEach-Object {New-MsolUser -UserPrincipalName $_.UserName -FirstName $_.FirstName -LastName $_.LastName –DisplayName $_.DisplayName -Title $_.JobTitle -Department $_.Department -Country $_.Country}
更新:
请参阅文件:https://msdn.microsoft.com/en-us/library/azure/ad/graph/howto/azure-ad-graph-api-batch-processing
Graph API支持OData规范定义的功能的子集:
单个批次最多可包含五个查询和/或更改集合。
更改集最多可包含一个源对象修改,最多可包含20个添加链接和删除链接操作。更改集中的所有操作都必须位于单个源实体上。
在您的方案中,单个源实体意味着一个用户实体,您可以创建用户,在更改集中修改该用户,但无法在一个更改集中创建两个用户,因为他们需要两个实体。
似乎没有这样的文档列表批量处理的速率限制,但我测试了使用上面的代码创建2000+用户,它工作正常。