Azure AD Graph API:批量更新用户

时间:2017-04-19 01:45:44

标签: azure-ad-graph-api

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

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

1 个答案:

答案 0 :(得分:0)

是的,Azure AD Graph API支持对用户进行批处理。请参阅this code sample,查看该代码示例中的CreateUsersTest函数。要使该示例正常运行,您需要为客户端应用添加Read and write directory data app权限:

enter image description here

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

  1. 首先使用适当的属性创建一个csv文件,如:

    enter image description here

  2. 然后您可以安装Azure ActiveDirectory Powershell (MSOnline)

  3. 连接服务:

    PS C:\WINDOWS\system32> connect-msolservice
    
  4. 从csv文件导入用户:

    $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}
    
  6. 更新:

    请参阅文件:https://msdn.microsoft.com/en-us/library/azure/ad/graph/howto/azure-ad-graph-api-batch-processing

      
        

    Graph API支持OData规范定义的功能的子集:

             

    单个批次最多可包含五个查询和/或更改集合。

             

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

      

    在您的方案中,单个源实体意味着一个用户实体,您可以创建用户,在更改集中修改该用户,但无法在一个更改集中创建两个用户,因为他们需要两个实体。

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