v2 应用程序模型,适用于本机应用程序的 Office365:AADSTS65005:动态范围无效

v2 app model, Office365 for native apps: AADSTS65005: Dynamic scope is invalid

我遇到了 Azure AD v2 身份验证终结点(v2 应用模型)的问题。我们的应用程序使用此端点并使用 Outlook REST API。 我有两个测试帐户:

  1. 一个开发者 outlook.com 帐户
  2. 一个office365账号

我建立了 2 种登录方式:

  1. Web 隐式流
  2. 本机 public 客户端(无秘密)

总共4个场景:

最后一个场景失败了,我们需要它工作。它使用与有效的 outlook.com 场景完全相同的代码。首先我们 让用户登录 webcontrol,然后用户接受权限,然后我们得到 id 令牌。

然后我们使用它来获取访问令牌,但对于 AADSTS65005 的 Office 365 失败:动态范围无效:应用程序...

请参阅下面的请求详细信息。

为什么?任何人都可以复制或请帮忙吗?

此致,

耶伦

Request: https://login.microsoftonline.com/common/oauth2/v2.0/token
client_id=b75022be-f556-40ec-9785-c3639e65158b&
redirect_uri=urn:ietf:wg:oauth:2.0:oob&
code=CODE_REMOVED_FOR_EXAMPLE&
session_state=98fb6ce4-e219-4265-8347-cc64199895a8&
grant_type=authorization_code

响应:HTTP/1.1 400 错误请求

{
  "error":"unauthorized_client",
  "error_description":"AADSTS65005: Dynamic scope is invalid: application 00000000-0000-0000-0000-000000000000 does not exist. Request ID: 94cd9ca3-c376-4d94-854e-bfc4f7ac3161, Timestamp: 02/26/2016 14:06:55\r\nTrace ID: 727ebe28-e7e2-4817-87fc-5f94b637c00e\r\nCorrelation ID: e4c5a448-3ba4-4de6-aaa9-df2f9c501ca5\r\nTimestamp: 2016-02-26 14:06:55Z",
  "error_codes":[65005],
  "timestamp":"2016-02-26 14:06:55Z",
  "trace_id":"727ebe28-e7e2-4817-87fc-5f94b637c00e",
  "correlation_id":"e4c5a448-3ba4-4de6-aaa9-df2f9c501ca5"
}

我解决了这个问题,似乎 "scope=" 参数在对 https://login.microsoftonline.com/common/oauth2/v2.0/token 的请求中也是必需的。现在可以了。 有点奇怪,对于 outlook.com 它也可以在没有此参数的情况下工作。