Microsoft Graph API beta端点提供401 Unauthorized

时间:2017-02-10 09:07:56

标签: java azure microsoft-graph azure-ad-graph-api

我正在测试Microsoft Graph beta端点,该端点向访客用户发送邀请以加入租户。我正在使用的端点是:

https://graph.microsoft.com/beta/invitations

体:

 {
  "invitedUserEmailAddress": "abc@xyz.com",
  "inviteRedirectUrl": "https://myDomain"
 }

我在通过ADAL4J api为本地管理员用户获取的Authorization标头中传递了持有者令牌。但是,此调用给了我401 Unauthorized错误。以下是回复:

{
  "error": {
    "code": "InvalidAuthenticationToken",
    "message": "Access token validation failure.",
    "innerError": {
      "request-id": "91f8129e-70cc-467d-a45b-9309e55788d6",
      "date": "2017-02-10T08:46:09"
    }
  }
}

有关如何使此请求有效的任何线索?在Github上,我经历了其他用户面临同样问题的讨论(eg)。

2 个答案:

答案 0 :(得分:2)

发送的令牌是使用资源" https://graph.windows.net"获得的。 Microsoft Graph API的预期资源/受众是" https://graph.microsoft.com"。更新应用程序清单以将Microsoft Graph包含为资源并请求所需的权限。然后请求上述资源/受众的令牌。

答案 1 :(得分:0)

我和@adarsh hegde一样兴奋。但我的目标是蔚蓝的B2C。 我可以获取windows图表的令牌(使用资源“https://graph.windows.net”),并且我能够在我的网络应用程序中创建用户,该用户使用正确的权限进行注册。

我所做的是同时获取graph.microsoft.com的令牌,但是此令牌不允许我使用邀请函给我同样的错误: { "error": { "code": "InvalidAuthenticationToken", "message": "Access token validation failure.", "innerError": { "request-id": "91f8129e-70cc-467d-a45b-9309e55788d6", "date": "2017-02-10T08:46:09" } } }

<强>更新 所以这是我到目前为止所做的步骤:

  1. ADB2C directroy
  2. 在此处注册了OpenID的Web应用程序,具有管理AD中用户所需的权限link
  3. 当管理员登录时,受信任模式的Web应用程序可以让他管理用户(创建/添加/等...)
  4. 现在我要使用的是MS图表(graph.microosoft.com)的InvitationManager部分,以便能够发送邀请邮件。我可以兑换OpenIdConnectAuthenticationNotifications中收到的代码来获取MS图的访问令牌吗?知道我已经这样做但是对于AD图形(graph.windows.net)
  5. 感谢您的帮助