访问azure graph api用户列表时没有足够的权限

时间:2016-12-08 11:03:37

标签: azure oauth-2.0 azure-active-directory azure-ad-graph-api

我正在尝试使用图形api从azure活动目录中获取用户。我尝试了很多方法,但没有一个工作,但让我们坚持最简单的方法 - 使用this instruction和一些应用程序来发出http请求(我正在使用邮递员)我能够获得autherization令牌没有问题。之后,我想使用https://graph.microsoft.com/v1.0/users获取用户列表,在标头中传递令牌。而不是用户列表,我得到“没有足够的权限来完成操作。”此错误消息对我来说非常混乱,因为应用程序注册现在拥有所有可能的权限,并且拥有此应用程序的服务帐户是全局管理员的角色,因此我相信此应用程序可以获得的任何其他权限。

我正在开发的应用程序的任务是合并来自少数公司的用户数据,并在其中一个公司的azure帐户上托管的网页上显示用户列表。在所有这些中,对我来说甚至更奇怪的是,对于一个这些域,使用图形api访问用户数据实际上是有效的,所以逻辑上的配置并没有在任何地方正确设置,但我真的不知道有什么区别可以使它们成为一个工作和其他人因“Insufficent privileges error”而失败。

1 个答案:

答案 0 :(得分:1)

当您在仅限app的应用程序中集成AAD时,如https://graph.microsoft.io/en-us/docs/authorization/app_only中的说明:

  

注册应用程序后,配置服务或守护程序应用程序所需的应用程序权限。

因此,首先,您可以查看您是否在Azure门户上配置了正确的权限: enter image description here

根据您的错误消息:

  

没有足够的权限来完成操作

应用程序权限要求您的应用程序具有管理员权限。您可以尝试将您使用的AD应用程序的角色升级为管理员权限。在PowerShell中运行以下命令:

Connect-MsolService
$ClientIdWebApp = '{your_AD_application_client_id}'
$webApp = Get-MsolServicePrincipal –AppPrincipalId $ClientIdWebApp
#use Add-MsolRoleMember to add it to "Company Administrator" role).
Add-MsolRoleMember -RoleName "Company Administrator" -RoleMemberType ServicePrincipal -RoleMemberObjectId $webApp.ObjectId