Azure AD 单一登录 - 使用代码请求令牌时 invalid_grant 9002313

Ste*_* R. 6 single-sign-on oauth-2.0 azure-active-directory

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

我已成功设置 AD 应用程序和前端逻辑来获取代码。然后我将其传递到后端,以生成令牌和秘密。调用 /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"
}
Run Code Online (Sandbox Code Playgroud)

我可以用 Postman 重现这个问题。我尝试了tenantid(Guid)以及名称xxx.onmicrosoft.com

在此输入图像描述

这是 Azure AD 中的配置: 在此输入图像描述

Car*_*hao 7

您按照我的流程尝试获取code

首先注册应用程序,进入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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 在此输入图像描述

最后使用邮递员获取访问令牌(根据我的请求配置): 在此输入图像描述

希望能帮到你!