2017-04-19 70 views
0

Azure AD图形API是否支持对用户进行批处理?例如,如果我想更新组织中几百个用户的位置,有什么方法可以做到这一点?我能找到的唯一信息是这里描述的内容:https://msdn.microsoft.com/en-us/library/azure/ad/graph/howto/azure-ad-graph-api-batch-processingAzure AD图形API:批量更新用户

但据我所知,您只能在给定的批处理操作中对单个用户实体进行批处理操作,甚至每个变更集的操作数限制为5次。所以我唯一的选择似乎是依次调用API来更新列表中的每个用户。我无法找到任何可能由Microsoft强制执行的官方文档限制速率。所以我不确定这种方法是否可行。有一个更好的方法吗?

回答

0

是的,Azure AD Graph API支持对用户进行批处理。请参阅this code sample,检查代码示例中的CreateUsersTest函数。为了使该样品的工作,你需要添加Read and write directory data应用同意您的客户端应用程序:

enter image description here

另一种方法是使用PowerShell中使用批量导入过程中添加多个用户:

  1. 首先创建与像的相应属性的CSV文件:

    enter image description here

  2. 然后你可以安装Azure ActiveDirectory Powershell (MSOnline)。从csv文件

    PS C:\WINDOWS\system32> connect-msolservice 
    
  3. 导入用户:

  4. 连接服务

    $users = Import-Csv E:\a.csv 
    
  5. 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

的图形API支持由OData的规范中定义的功能的子集:

A s单个批次最多可以包含五个查询和/或更改组合。

更改集最多可包含一个源对象修改,最多可包含20个组合的添加链接和删除链接操作。变更集中的所有操作必须位于单个来源实体上。

在你的情况下,单一的源实体是指一个用户的实体,您可以创建一个用户,修改变化组的用户,但在一个变化集不能创建两个用户,因为他们”两个实体。

似乎没有这样的文件列表限制批处理的速度,但我已经测试了使用上面的代码创建2000+用户,它工作正常。

+0

谢谢!代码示例和powershell命令在这里有帮助。我不确定是否包含多个用户更新请求的变更集(/ users/,/ users/ ....)被认为是一个有效的变更集 此外,这带来了我的另一个问题 - 即使使用这个批处理,我一次只能更新5个用户 如果我正在更新5000个用户,那仍然是1000批量请求是否有一些速率限制可能会阻止我这样做?如果是这样,我在哪里可以获得这些信息? – sdworld

+0

@sdworld,我已更新我的回答以回复您的问题,请让我知道是否有帮助。 –

+0

谢谢澄清,这有助于! – sdworld