Azure AD 单点登录 - invalid_grant 9002313 请求带代码的令牌时

Azure AD Single Sign In - invalid_grant 9002313 when requesting token with code

我们有一个带有 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"
}

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

这是 Azure AD 中的配置:

你按照我的流程尝试得到code:

首先注册应用,进入Azure门户:

然后在浏览器中输入这个link得到验证码:

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

最后使用邮递员获取访问令牌(按我的要求配置):

希望能帮到你!