web-dev-qa-db-ja.com

Identity Server 4:申し訳ありませんが、エラーが発生しました:unauthorized_client

Umbracoを拡張するためにIDサーバー4をセットアップし、カスタムロールプロバイダーを使用します。

すべてが機能していましたが、Identityサーバーにリダイレクトされると、次のエラーが発生します。

enter image description here

誰かがこのエラーに光を当てることができますか?ソース管理で自分のコードをロールバックしようとしましたが、それを助けるものは何もないようです。エラーログを確認できる場所はありますか?

ありがとう、スコット

5
Scott L

これは、RedirectUrisが正しくないことが原因であることがわかりました。

このエラーは、クライアントに問題がある場合にスローされます。

1
Scott L

このようなローカルのSitecore管理パネルにアクセスするために、httpではなくhttpsを使用してみました

https://site.local/sitecore そしてそれは働いたその唯一のhttpsを覚えている!

2
SitecoreSyed

原因はクライアントのRedirectUrisである可能性があり、クライアントアプリが送信している実際のリダイレクトURIが含まれていません。これはClient.csメソッドGetClientsで設定されます:

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

リダイレクトURIは、クライアントが送信しているアドレスと正確に一致する必要がありますHTTPスキームを含む(http、https)。

これは、許可されたURIと失敗した認証リクエストの実際のURIをリストするファイルのログにあります。 Identityサーバーは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();
0
Martin Staufcik