图形API:令牌中必须存在scp或roles声明

18
我正在尝试使用MS Graph API从OneDrive for Business中获取文件/文件夹列表。我已经成功地在Graph Explorer中执行了所需的查询,现在正在实施到我的项目中。
我的应用程序是一个Windows服务,因此我正在使用this method来获取令牌。
我已经成功地检索到了令牌,但是当我“GET”这个URL时... //graph.microsoft.com/v1.0/users('someuseraccount')/drive/items/somedriveitem/microsoft.graph.createLink
...我收到一个带有错误的响应: Either scp or roles claim need to be present in the token.
服务器返回的我的令牌响应如下:
{
  "token_type": "Bearer",
  "expires_in": "3600",
  "scope": "Directory.AccessAsUser.All Files.Read Files.Read.Selected Files.ReadWrite Files.ReadWrite.AppFolder Files.ReadWrite.Selected profile Sites.Read.All User.Read",
  "expires_on": "1457343736",
  "not_before": "1457339836",
  "resource": "https://graph.microsoft.com",
  "access_token": "-the token-"
}

请提供您的调用请求ID和时间戳,好吗? - Marek Rycharski
1
@baparks,您能展示一下您添加的权限截图吗?据我所知,只有使用委派权限而不是应用程序权限才能访问文件等。 - Syed Mauze Rehan
1个回答

14

看起来您的客户端应用程序仅请求了对Microsoft Graph的委派权限,而在此处尝试的情况下应该请求应用程序权限。以下是Azure门户中应用程序权限部分的示例。请选择所需的适当权限并重试。 application permission illustration


这就是问题所在。谢谢,Sriram。 - baparks
2
@baparks,您能否展示一下您为此添加的权限的截图?据我所知,只有使用委派权限而不是应用程序权限才能访问文件等。 - Syed Mauze Rehan
2
应用程序权限中没有提到读/写文件等。 - Syed Mauze Rehan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接