繁体   English   中英

AWS cognito ASP.NET 核心 MVC 抛出“invalid_client”

[英]AWS cognito ASP.NET Core MVC throws 'invalid_client'

我正致力于在 ASP.NET Core 6 MVC 网站上实施用户身份验证。 该站点将托管在 AWS lambda 上,因此我决定使用 AWS cognito。

我在这里逐字逐句地关注 aws 示例(在测试中,我克隆了他们的存储库并应用了我自己的appsettings.json并完全按照描述创建了认知池和应用程序客户端。唯一的区别是(尽我所能知识)样本中的回调 url 不正确,所以我使用的是https://localhost:5001/signin-oidc而不是https://localhost:5001/externalauthentication/callback (我也试过这个,显然它没有'不工作)。

错误的描述是:

  • 在本地启动应用程序(http://localhost:5001)并单击“产品”
  • 然后我被带到默认的 Cognito 登录页面,我输入我的用户名/密码
  • 发生重定向回本地主机,但我看到了一个异常页面,但有以下异常:

System.Exception:处理远程登录时遇到错误。
Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolException:消息包含错误:“invalid_client”、error_description:“error_description 为空”、error_uri:“error_uri 为空”。

在 Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.RedeemAuthorizationCodeAsync(OpenIdConnectMessage tokenEndpointRequest)
在 Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.HandleRemoteAuthenticateAsync()
--- 内部异常堆栈跟踪结束 ---
在 Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler`1.HandleRequestAsync()
在 Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext 上下文)
在 Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext 上下文)

根据他们的示例,我的应用程序设置是 1:1,我已经多次手动重新创建池和应用程序客户端,以防我遗漏某些内容或在复制 ID 等时出错,并且每次都遇到同样的问题。

我假设“invalid_client”不是指提到的“client_id”,我已经重新创建了很多次并在我的appsettings.json中三重检查它是否正确。

非常感谢所有帮助

对于遵循 aws 相同指南的任何人,他们的页面中都缺少一个非常重要的拼图:

在您的池的应用程序集成下,单击显示客户端密码并将其复制到您的 appsettings.json,如下所示:

"ClientSecret": "#####",

然后将 clientsecret 选项添加到 openIdConnect,如下所示:

options.ClientSecret = Configuration["Authentication:Cognito:ClientSecret"];

确保您创建的用户在 admin 组内并且回调 url 是正确的:

/signout-callback-oidc

在 cognito 和 as.net core 的世界里,一切都应该是好的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM