Identity Server 4故障排除

11

我正在使用Identity Server 4进行身份验证。 我有一个MVC客户端。 几天前,我成功通过了身份验证。 但是最近我在Identity Server项目中做了一些更改,导致出现了问题。 我收到如下错误:

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

我尝试了所有可能的解决方法,但无法解决问题。 是否有办法调试代码? 我可以看到对/connect/authorize端点的调用,并且调用了IScopeStore.FindScopesAsyncIClientStore.FindClientByIdAsync,我验证了它具有所有适当的AllowedScopes

有人能告诉我如何解决Identity Server 4这种问题的故障排除。 同时,我也想知道执行流程。 IDSvr调用哪些端点以及何时进行调用?

2个回答

8

你的问题可能是任何东西。启用控制台日志记录,您就可以找出问题所在。Identity Server 4 默认使用 asp.net core 日志提供程序来进行内部日志记录。

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


谢谢Lutando。我没有收到任何异常。ID服务器给了我那个错误消息,我不确定为什么它会抛出错误。我只是想知道当ID服务器端点被调用时,如何调试我的代码。例如/connect/authorize - Venkata Dorisala
可能并不是一个异常。IdentityServer4的日志记录非常详细。当您向授权端点发出请求时,日志记录器会显示什么?也许您可以将其粘贴在这里,以便我查看。 - Lutando
我已经启用了控制台日志记录,但是无法看到任何日志。我只能在DeveloperExceptionPage上获得异常。你能告诉我在控制台上查找错误的位置吗? - Venkata Dorisala
如果您在控制台上登录,它应该只出现在控制台中。将最小LogLevel设置为trace基本上也会显示所有跟踪信息。以下是我的日志记录在控制台中的示例:调用IdentityServer端点: 处理令牌请求。 --- 省略部分 --- dbug:IdentityServer4.Services.Default.DefaultClaimsProvider[0] 获取客户端访问令牌的声明:identityapipostman_identityapi trce:IdentityServer4.Services.Default.DefaultTokenService[0] 创建JWT访问令牌 - Lutando
我们正在使用标准的ASP.NET Core日志记录 - 为跟踪/调试级别启用它。 - leastprivilege
显示剩余3条评论

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接