身份服务器 4:抱歉,出现错误:未授权的客户端

Sco*_*t L 11 .net c# umbraco identityserver4

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

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

在此处输入图片说明

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

谢谢,斯科特

Sco*_*t L 6

我发现这是由于 RedirectUris 不正确。

如果客户端有任何问题,则会抛出此错误。

  • 请进一步解释 (5认同)

Mar*_*cik 5

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

new Client
{
    ...
    RedirectUris = new[] { "https://..." }, 
    PostLogoutRedirectUris = new[] { "https://..." },
    AllowedCorsOrigins = new[] { "https://..." },
}
Run Code Online (Sandbox Code Playgroud)

重定向 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();
Run Code Online (Sandbox Code Playgroud)