0

.netコア2.0 Web APIでopeniddictをセットアップし、コードとパスワードの流れを有効にしました。私は、401ステータスコードを探すリクエスタが認可されていないときに、APIのロックダウンされたアクションが拒否されるようにテストケースを持っています。承認されていないWeb API呼び出し(コア2.0)の代わりに401の代わりに404を返すOpeniddict

これらのテストが実行されると、401の代わりに404の応答が見つからないため、テストが失敗します。私は匿名を許可するときに200を返すので、ルートが正しいことを知っています。私は、認証なしでロックダウンされているアクションにアクセスしようとするたびに404を取得しています。これは、認証されていないリソースにアクセスしようとすると、openiddictのデフォルトの状態ですか?この現象は、ブラウザ、郵便配達員、またはテストケースから実行された場合に発生します。 401を返すように設定するにはどうすればよいですか?私は以下の構成を提供しました。

services.AddOpenIddict<int>(options => 
{ 
    options.AddEntityFrameworkCoreStores<ApplicationContext>(); 
    options.AddMvcBinders(); 
    options.EnableAuthorizationEndpoint("/connect/authorize"); 
    options.EnableTokenEndpoint("/connect/token"); 
    options.AllowAuthorizationCodeFlow(); 
    options.AllowPasswordFlow(); 
    options.AllowRefreshTokenFlow(); 
    options.RequireClientIdentification(); 
    options.SetAccessTokenLifetime(TimeSpan.FromMinutes(1)); 
    options.SetRefreshTokenLifetime(TimeSpan.FromMinutes(20160)); 
    options.DisableHttpsRequirement(); 
}); 
services.AddAuthentication() 
    .AddFacebook(o => { o.ClientId = settings.FacebookAppID; o.ClientSecret = settings.FacebookAppSecret; }) 
    .AddOAuthValidation(); 

答えて

2

デフォルトのチャレンジをoauthに指定することで、目的の401を取得できました。リダイレクトしようとしていた場所を知っていればよかったでしょうか。

services.AddAuthentication(o => 
    { 
     o.DefaultAuthenticateScheme = OAuthValidationDefaults.AuthenticationScheme; 
     o.DefaultChallengeScheme = OAuthValidationDefaults.AuthenticationScheme; 
    }) 
    .AddFacebook(o => { o.ClientId = settings.FacebookAppID; o.ClientSecret = settings.FacebookAppSecret; }) 
    .AddOAuthValidation(); 
+0

「ASP.NET Core Identityオプションで設定されたアクセス拒否」ページに「リダイレクトしようとしていた場所を知っていればいいですか」 - >。表示されている動作は、Identityによって使用されているCookieハンドラ(デフォルトのスキームとして構成されている)によって引き起こされ、403応答を返す代わりにリダイレクトされます。アクセス拒否ページはあなたのアプリには存在しないため、最終的に404の回答が得られます。 – Pinpoint

+0

(私の前のコメントが明確でない場合は、OpenIddict自体とは関係ありません)。 – Pinpoint

+0

それは全然意味があります。本当にそれをフォローアップしていただきありがとうございます。私はopeniddictの初心者なので、メカニズムや何かが組み込まれているかどうかは分かりませんでした。ところで...あなたがこれらのフォーラムを監視することは素晴らしいことです...あなたは何度も私を助けました...歓声! – Geekn

関連する問題