Identity Server 4 : Sorry, there was an error : unauthorized_client

Identity Server 4 : Sorry, there was an error : unauthorized_client

我已经设置身份服务器 4 来扩展 Umbraco,因此它使用自定义角色提供程序。

一切正常,但现在当我被重定向到我的身份服务器时,我收到了这个错误:

任何人都可以阐明这个错误吗?我曾尝试在源代码管理中回滚我的代码,但我所做的似乎无济于事。有什么地方可以看到错误日志吗?

谢谢, 斯科特

我发现这是因为 RedirectUris 不正确。

如果客户端有任何问题,就会抛出这个错误。

我试过像这样使用 https 而不是 http 来访问我的本地 sitecore 管理面板

https://site.local/sitecore 记住它唯一的 https!

原因可能是 RedirectUris 客户端不包含客户端应用发送的实际重定向 uri。这是在 Client.cs 方法中配置的 GetClients:

new Client
{
    ...
    RedirectUris = new[] { "https://..." }, 
    PostLogoutRedirectUris = new[] { "https://..." },
    AllowedCorsOrigins = new[] { "https://..." },
}

重定向 URI 必须与客户端发送的地址完全匹配,包括 HTTP 方案(http、https)。

这可以在列出允许的 URI 和失败的授权请求的实际 URI 的日志文件中找到。身份服务器正在使用 serilog,在 program.cs 中可以在 Main 方法中打开它:

...

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
    .MinimumLevel.Override("System", LogEventLevel.Warning)
    .MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information)
    .Enrich.FromLogContext()
    .WriteTo.File("logs\the-log-file-name.txt")
    .CreateLogger();

BuildWebHost(args).Run();