Oauth 2.0 Azure AD单次登录-请求带有代码的令牌时授予9002313无效

Oauth 2.0 Azure AD单次登录-请求带有代码的令牌时授予9002313无效,oauth-2.0,azure-active-directory,single-sign-on,Oauth 2.0,Azure Active Directory,Single Sign On,我们有一个现有的解决方案,包括ASP.NET核心和Angular前端,以及我们自己的用户管理。现在我想在Azure Active Directory中实现注册和登录 我已经成功地设置了广告应用程序和前端逻辑来获取代码。 然后我将其传递到后端,以生成一个令牌和秘密。 调用/oauth2/token端点时,我遇到了这个错误 { "error": "invalid_grant", "error_description": "AADSTS9002313: Invalid request.

我们有一个现有的解决方案,包括ASP.NET核心和Angular前端,以及我们自己的用户管理。现在我想在Azure Active Directory中实现注册和登录

我已经成功地设置了广告应用程序和前端逻辑来获取代码。 然后我将其传递到后端,以生成一个令牌和秘密。 调用/oauth2/token端点时,我遇到了这个错误

{
    "error": "invalid_grant",
    "error_description": "AADSTS9002313: Invalid request. Request is malformed or invalid.\r\nTrace ID: 0a741bc7-c4a7-4699-af50-4e95a5690b00\r\nCorrelation ID: b83b609c-7cdc-4ad6-ae88-6aa07b4243f8\r\nTimestamp: 2020-05-22 19:22:24Z",
    "error_codes": [
        9002313
    ],
    "timestamp": "2020-05-22 19:22:24Z",
    "trace_id": "0a741bc7-c4a7-4699-af50-4e95a5690b00",
    "correlation_id": "b83b609c-7cdc-4ad6-ae88-6aa07b4243f8",
    "error_uri": "https://login.microsoftonline.com/error?code=9002313"
}
我可以向邮递员重复这个问题。我尝试了tenantid(Guid)以及xxx.onmicrosoft.com的名称

这是Azure AD中的配置:
您按照我的流程尝试获取
代码:

首先注册应用程序,转到azure门户:

然后在浏览器中输入此链接以获取代码:

https://login.microsoftonline.com/{tenant}/oauth2/authorize?
client_id={your-client-id}
&response_type=code
&redirect_uri=https://localhost:4500/web/completeoauth/ms
&response_mode=query
&state=12345

最后使用postman获取访问令牌(根据我的请求进行配置):


希望能帮到你

您应该使用POST兑换代码。而且您不需要在表单数据中包含租户。请参阅示例。谢谢@maweeras,但这并不能解决问题。我以前试过获取和发布,从几天前开始我就在研究同一个文档,以防我遗漏了什么。使用POST,并且没有租户和资源(这是可选的),它仍然会给我同样的错误。它是否与Azure目录端的应用程序配置有关?大多数OAuth流需要https作为重定向URI。提供的屏幕截图未利用安全通道。你能尝试使用Https重定向吗?谢谢,但我真的不明白你的意思。我看不出你的帖子配置和我的有什么不同。但是我不知道如何使用jwt.ms创建流。。。我正在使用HTTP本地主机重定向…@StefanR.s您可能误解了我的意思。您的配置没有问题。你使用什么样的重定向并不重要。我还可以使用您的重定向地址获取访问令牌。我的意思是,你可能在使用“代码”时复制了额外的内容。@StefanR。因为“代码”有一个过期时间,所以您需要获取一个新的“代码”。在使用“代码”时,注意不要截取过多的内容。我非常小心地使用从回调URL提取的代码,没有任何额外的内容。此外,对于每个测试,我都使用一个新代码(使用我的初步UI生成),即使获取令牌的帖子以BadRequest结束。无论如何,如果只是关于无效代码,我希望错误会更具体一些。恐怕有一个我看不到的小细节缺失,或者广告应用程序配置仍然存在问题。也许我应该再创建一个沙盒,来进行比较……我真的很感谢您的努力。我从头做起,仔细地按照你的步骤做。但还是有同样的错误。我没有在本地使用https,但如果这是一个问题,它不应该首先给我一个代码。。。