Java Microsoft Graph API beta端点提供401个未经授权的

Java Microsoft Graph API beta端点提供401个未经授权的,java,azure,microsoft-graph-api,azure-ad-graph-api,Java,Azure,Microsoft Graph Api,Azure Ad Graph Api,我正在测试Microsoft Graph beta端点,该端点向来宾用户发送加入租户的邀请。我使用的端点是: https://graph.microsoft.com/beta/invitations 正文: 我正在通过ADAL4J api传递我为本地管理员用户获得的授权头中的承载令牌。然而,这个电话给了我一个错误。答复如下: { "error": { "code": "InvalidAuthenticationToken", "message": "Access token

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

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

我正在通过ADAL4J api传递我为本地管理员用户获得的授权头中的承载令牌。然而,这个电话给了我一个错误。答复如下:

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

关于如何使此请求生效的任何线索?在Github上,我进行了其他讨论(),其中用户面临相同的问题。

发送的令牌是使用资源“”获得的。Microsoft Graph API的预期资源/访问群体为“”。更新应用程序清单以将Microsoft Graph作为资源并请求所需的权限。然后使用上述资源/访问群体请求令牌。

所发送的令牌是在资源为“”的情况下获得的。Microsoft Graph API的预期资源/访问群体为“”。更新应用程序清单以将Microsoft Graph作为资源并请求所需的权限。然后使用上述资源/受众请求令牌。

我的处境与@adarsh hegde相同。但我的目标是azure B2C。 我可以获得windows图形的令牌(使用资源“”),并且我可以在我的web应用中创建用户,该应用已注册并具有正确的权限

我所做的是在同一时间为graph.microsoft.com获取令牌,但此令牌不允许我使用邀请,从而导致与您相同的错误:
{
“错误”:{
“代码”:“InvalidAuthenticationToken”,
“消息”:“访问令牌验证失败。”,
“内部错误”:{
“请求id”:“91f8129e-70cc-467d-a45b-9309e55788d6”,
“日期”:“2017-02-10T08:46:09”
}
}
}

更新: 以下是我到目前为止所做的步骤:

  • ADB2C directroy
  • 其中注册了OpenID的Web应用程序,具有管理以下广告中用户所需的权限
  • 当管理员登录时,处于受信任模式的Web应用程序可以让他管理用户(创建/添加/等…)
  • 现在我想使用的是MS graph(graph.microosoft.com)的InvitationManager部分,以便能够发送邀请邮件。我可以兑换OpenIdConnectAuthenticationNotifications中收到的代码以获取MS graph的访问令牌吗?知道我已经这样做了,但对于AdGraph(graph.windows.net)

  • 谢谢你的帮助

    我和@adarsh hegde处境相同。但我的目标是azure B2C。 我可以获得windows图形的令牌(使用资源“”),并且我可以在我的web应用中创建用户,该应用已注册并具有正确的权限

    我所做的是在同一时间为graph.microsoft.com获取令牌,但此令牌不允许我使用邀请,从而导致与您相同的错误:
    {
    “错误”:{
    “代码”:“InvalidAuthenticationToken”,
    “消息”:“访问令牌验证失败。”,
    “内部错误”:{
    “请求id”:“91f8129e-70cc-467d-a45b-9309e55788d6”,
    “日期”:“2017-02-10T08:46:09”
    }
    }
    }

    更新: 以下是我到目前为止所做的步骤:

  • ADB2C directroy
  • 其中注册了OpenID的Web应用程序,具有管理以下广告中用户所需的权限
  • 当管理员登录时,处于受信任模式的Web应用程序可以让他管理用户(创建/添加/等…)
  • 现在我想使用的是MS graph(graph.microosoft.com)的InvitationManager部分,以便能够发送邀请邮件。我可以兑换OpenIdConnectAuthenticationNotifications中收到的代码以获取MS graph的访问令牌吗?知道我已经这样做了,但对于AdGraph(graph.windows.net)

  • 感谢您的帮助

    您是否检查了访问令牌中的范围声明?你可以使用像jwt.io这样的网站来检查它们。另外,您的问题标题涉及Azure广告图,但这是Microsoft Graph API。不要混淆它们,它们是具有不同功能的不同API。@juunas我可以使用jwt.io从访问令牌获取信息,但我不确定作用域声明是什么。你指的是权限吗?我已更改问题的标题。我已授予Microsoft Graph API应用程序中的所有权限。我也可以在令牌信息中看到这一点。一个常见的错误是请求所有委托的权限,然后使用使用客户端凭据(仅应用程序)流获取的令牌调用,反之亦然。如果您不提供代码片段或令牌的更多详细信息,则很难判断。您应该能够将访问令牌直接粘贴到中,以查看令牌及其声明。@DanKershaw MSFT by claims这是(“scp:Calendars.Read Calendars.Read.Shared”)什么意思?您检查了访问令牌中的范围声明了吗?你可以使用像jwt.io这样的网站来检查它们。另外,您的问题标题涉及Azure广告图,但这是Microsoft Graph API。不要混淆它们,它们是具有不同功能的不同API。@juunas我可以使用jwt.io从访问令牌获取信息,但我不确定作用域声明是什么。你指的是权限吗?我已更改问题的标题。我已授予Microsoft Graph API应用程序中的所有权限。我也可以在令牌信息中看到这一点。一个常见的错误是请求所有委托的权限,然后使用使用客户端凭据(仅应用程序)流获取的令牌调用,反之亦然。如果您不提供代码片段或令牌的更多详细信息,则很难判断。您应该能够将访问令牌直接粘贴到中以查看令牌及其声明。@DanKershaw MSFT by claims这是什么意思(“scp:Calendars.Read Calendars.Read.Shared”)?另外(根据Sriram的建议),请确保您正在配置应用程序以请求正确的权限。请查看创建邀请文档:whi
    {
      "error": {
        "code": "InvalidAuthenticationToken",
        "message": "Access token validation failure.",
        "innerError": {
          "request-id": "91f8129e-70cc-467d-a45b-9309e55788d6",
          "date": "2017-02-10T08:46:09"
        }
      }
    }