Umbracoを拡張するためにIDサーバー4をセットアップし、カスタムロールプロバイダーを使用します。
すべてが機能していましたが、Identityサーバーにリダイレクトされると、次のエラーが発生します。
誰かがこのエラーに光を当てることができますか?ソース管理で自分のコードをロールバックしようとしましたが、それを助けるものは何もないようです。エラーログを確認できる場所はありますか?
ありがとう、スコット
これは、RedirectUrisが正しくないことが原因であることがわかりました。
このエラーは、クライアントに問題がある場合にスローされます。
このようなローカルのSitecore管理パネルにアクセスするために、httpではなくhttpsを使用してみました
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をリストするファイルのログにあります。 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();