[英]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
(我也试过这个,显然它没有'不工作)。
错误的描述是:
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.