在新的v2端点中注册的WebAPI不会提示同意屏幕

时间:2017-07-27 04:36:26

标签: azure-active-directory

在v2应用注册门户中注册的应用,添加了webapi平台,但是当使用https://login.microsoftonline.com/common/oauth2/v2.0/authorize端点请求使用api范围进行授权时,它会直接转到错误代码为AADSTS70002%3a+Error+validating+credentials的重定向网址。相反,如果我使用图形api,一切正常,不确定我做错了什么!

webapi范围的那个:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=222db0-0305-4f86-96cc-d283da2f5020&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%2Ftest&response_mode=query&scope=openid%20offline_access%20api%3A%2F%2Fc6599db0-0305-4f86-96cc-d283da2f5020%2Faccess_as_user

图表api:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=222db0b0-0305-4f86-96cc-d283da2f5020&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%2Ftest&response_mode=query&scope=openid%20offline_access%20https%3A%2F%2Fgraph.microsoft.com%2Fmail.read

修改

这很令人困惑,现在我把离线和开放的id放到了最后但得到了另一个错误:

AADSTS65005%3a+The+application+'v2app'+asked+for+scope+'openid'+that+doesn't+exist+on+the+resource.+Contact+the+app+vendor.

我要求的网址是:

https://login.microsoftonline.com/e0582222da8-ec2b-4c7a-b98e-2c417627657c/oauth2/v2.0/authorize?client_id=c6599db0-0305-4f86-96cc-d283da2f5020&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%2Ftest&response_mode=query&scope=api%3A%2F%2Fc6599db0-0305-4f86-96cc-d283da2f5020%2Faccess_as_user%20openid%20offline_access

如果我谷歌这个错误,there is one saying

  

截至今天,V2 Endpoint不支持Microsoft Graph以外的API访问。

所以这是不可能实现的?那么the sample怎么运作?

编辑2

因此,如果我将请求的范围设为客户端ID,则可以正常工作..

1 个答案:

答案 0 :(得分:0)

我转载了你的错误。但是如果将SELECT UserName, EMail FROM Users WHERE (cast(RegistrationDate as int) - cast (GETDATE() as int)) % 3 = 0 AND RegistrationDate > GETDATE() 范围放在openid%20offline_access(api范围)之后,它可以在我这边工作,请尝试:

api%3A%2F%2Fc6599db0-0305-4f86-96cc-d283da2f5020%2Faccess_as_user

<强>更新

您链接的MSAL错误是从具有https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=222db0-0305-4f86-96cc-d283da2f5020&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%2Ftest&response_mode=query&scope=api%3A%2F%2Fc6599db0-0305-4f86-96cc-d283da2f5020%2Faccess_as_user%20openid%20offline_access 应用程序ID的客户端访问Web API,该版本在v2.0端点中不受支持。在azure ad v2.0中,Web API只能从具有相同应用程序ID的应用程序接收令牌。这意味着api:// xxxx-xxxx-xxx-xxx(web api url),xxxx-xxxx-xxx-xxx部分与客户端应用程序的客户端ID具有相同的值。要实现这一目标,您可以添加两个平台:一个Web应用程序,一个Web api。