【问题标题】:Microsoft Graph scopes v2 oauthMicrosoft Graph 范围 v2 oauth
【发布时间】:2016-11-04 03:45:16
【问题描述】:

我正在尝试构建一个简单的 Ruby 应用程序,它可以连接到 Microsoft Graph API 并获取有关用户的基本信息,例如经理或直接下属。

我遵循了 0365 教程,并且我有一个能够获取用户邮件的工作应用程序。但是,当我尝试使用会话令牌查询图形 api 时,出现错误:

response.body
=> "{\r\n  \"error\": {\r\n    \"code\": \"InvalidAuthenticationToken\",\r\n    \"message\": \"Access token validation failure.\",\r\n    \"innerError\": {\r\n      \"request-id\": \"18cbc6be-5254-400c-9780-7427376587fb\",\r\n      \"date\": \"2016-06-30T22:21:55\"\r\n    }\r\n  }\r\n}" 

我正在使用范围

SCOPES = [ 'openid', 'profile', 'https://outlook.office.com/contacts.read', 'offline_access' ] 

刚刚有人建议我包含范围“https://graph.microsoft.com/user.read”,但是当我将其添加到应用程序时,我什至在点击用户登录页面之前就收到了以下错误:

AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope openid profile offline_access https://graph.microsoft.com/user.read is not valid.

对此的任何帮助将不胜感激!

【问题讨论】:

标签: microsoft-graph-api


【解决方案1】:

好的。问题是您同时包含 Outlook(https://outlook.office.com/contacts.read 范围)和 Graph(https://graph.microsoft.com/user.read 范围)的范围。不幸的是,Azure 的授权端点不支持这样的混合范围。您可以删除 Outlook 范围(假设您不需要它),或将其更改为 Graph 等效项:https://graph.microsoft.com/contacts.read(如果您需要访问已登录用户的个人联系人)。

【讨论】:

  • 非常感谢杰森。我现在至少可以做 /me :)
  • 当我尝试获取直接报告时,我收到一条错误消息:代码:Authorization_RequestDenied,消息:权限不足,无法完成操作。”你知道是否有具有范围的资源以及是否有一些它们只有管理员可以访问?
  • 看起来 Graph 文档有错误。直接报告的链接说 User.Read 可以工作,但graph.microsoft.io/en-us/docs/authorization/permission_scopes 说 User.Read 你不能阅读“像经理和直接报告这样的导航属性”。让我问问 Graph 的人发生了什么事。
  • 我找到了这个页面:msdn.microsoft.com/en-us/library/azure/ad/graph/howto/…,上面写着要获得有关经理和直接下属的信息,管理员必须同意它......所以最终出现这个错误的屏幕: AADSTS90093: 由于缺乏权限,调用主体无法同意。想知道一个人如何在开发中获得应用程序的同意 :) 甚至不确定我的管理员甚至会同意这一点......我们在一家拥有 100K 员工的公司!
  • 我复制了这个,我正在与 Graph 人员确认这是有意的。
猜你喜欢
  • 2019-07-26
  • 1970-01-01
  • 2016-08-04
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多