调用Microsoft Graph API - 仅限App未经授权的错误

时间:2016-11-16 01:32:14

标签: azure-ad-graph-api

我正在尝试使用没有UI的服务向Graph API发出请求。我下载了以下示例代码并按照说明操作:https://blog.kloud.com.au/2015/12/14/implementing-application-with-o365-graph-api-in-app-only-mode/

我成功获得了访问令牌,但在使用它来获取组织信息请求(需要读取目录数据访问权限)时,我获得了403 Unauthorized。

我已在Azure AD中注册了我的应用程序(我是其中的共同管理员)。

我已在“其他应用程序的权限”部分中指定了Microsoft Graph,并给出了“读取目录数据”访问权限。

有趣的是,下面有一条说明“您被授权只选择具有个人范围的委托权限”。尽管我明显做到了。为什么?我怀疑这是我的问题的根源。 My Azure App Management Page 同样,我已根据这些说明检查了我的演示应用程序:https://graph.microsoft.io/en-us/docs/authorization/app_only,但它没有提到您需要在Azure中扮演什么角色。

in this SO post's answer,提到还需要同意。我还没有找到任何关于此的文档。

1 个答案:

答案 0 :(得分:1)

  

您被授权仅选择具有个人范围的委派权限

此问题导致应用程序由任何管理员创建,当他们访问门户网站时,将会看到此消息。

要向应用程序授予仅限应用程序的权限,我们需要成为租户的管理员。与共同管理员不同。要使用客户端凭据流,我建议您与租户管理员联系,为您创建一个应用程序。如果您只是出于测试目的,您可以创建一个免费租户并自行注册该应用程序。

更新

我们需要分配全局管理员导演角色,如下图所示,以使该应用程序适用于客户端凭据流enter image description here