簡體   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