【问题标题】:Troubleshooting Identity Server 4身份服务器 4 故障排除
【发布时间】:2019-08-09 18:15:37
【问题描述】:

我正在使用 Identity Server 4 进行身份验证。我有 MVC 客户端。几天前,我能够成功进行身份验证。但是最近我在 Identity Server 项目中做了一些改变,这破坏了一些东西。我得到了

unauthorized_client 客户端应用程序未知或未经授权。

我尝试了所有可能的修复方法,但无法修复它。有什么办法可以调试代码。我可以看到呼叫是对/connect/authorize 端点进行的,并且呼叫将转到IScopeStore.FindScopesAsyncIClientStore.FindClientByIdAsync,并且我验证它具有所有正确的AllowedScopes

谁能告诉我如何解决 Identity Server 4 的此类问题。另外,我很想知道执行流程。调用哪些 IDSvr 端点以及何时调用?

【问题讨论】:

    标签: c# debugging .net-core identityserver4


    【解决方案1】:

    您的问题可以是任何问题。启用登录到控制台,您可以找出它是什么。 Identity Server 4 默认使用 asp.net 核心记录器提供程序进行内部记录。

    在您的Startup.cs 中的Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) 方法中。通过 loggerFactory.AddConsole(LogLevel.Trace); 添加控制台日志记录,并确保在 project.json "Microsoft.Extensions.Logging.Console": "1.0.0", 中包含记录器扩展包。

    【讨论】:

    • 谢谢卢坦多。我没有任何例外。 ID Server 正在给我该错误消息,我不确定它为什么会抛出错误。我只是想知道在调用 ID 服务器端点时如何调试我的代码。例如/connect/authorize.
    • 可能也不例外。 IdentityServer4 的日志记录非常具有描述性。当您向授权端点发出请求时,记录器会说什么?也许你可以把它贴在这里让我看看。
    • 我已启用登录控制台但看不到任何日志。我只在 DeveloperExceptionPage 上得到异常。你能告诉我在哪里寻找控制台上的错误。
    • 如果您登录控制台,它应该只出现在控制台中。将最小 LogLevel 设置为跟踪基本上也会显示所有跟踪信息。下面是我的日志如何登录控制台的示例:``` 调用 IdentityServer 端点:处理令牌请求。 ---为简洁而省略--- dbug:IdentityServer4.Services.Default.DefaultClaimsProvider [0]获取客户​​端访问令牌的声明:identityapipostman_identityapi trce:IdentityServer4.Services.Default.DefaultTokenService [0]创建JWT访问令牌```
    • 我没有使用 selfhost。我正在使用一个 asp.net MVC Web 项目。
    【解决方案2】:

    您在 /connect/authorize 请求中发送的 client_id 和(客户端配置)必须与 IdentityServer4 上配置的 ClientId 完全匹配。要调试,请使用输出窗口读取日志消息或记录 a 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多