そのため、ID サーバー (ThinkTecture の IdentityServer3 を使用) と MVC6 Web サービス アプリケーションを含む MVC6 アプリがあります。
Web サービス アプリケーションでは、スタートアップで次のコードを使用しています。
app.UseOAuthBearerAuthentication(options =>
{
options.Authority = "http://localhost:6418/identity";
options.AutomaticAuthentication = true;
options.Audience = "http://localhost:6418/identity/resources";
});
Authorize
次に、属性を持つアクションを持つコントローラーがあります。
ID サーバーで認証し、提供された JWT トークンを使用して Web サービス アクションにアクセスする JavaScript アプリケーションがあります。
これは機能し、有効なトークンでのみアクションにアクセスできます。
問題は、JWT の有効期限が切れたときに発生します。私が得ているのは、次の例外の例外情報を返す、詳細な ASP.NET 500 エラー ページのように見えるものです。
System.IdentityModel.Tokens.SecurityTokenExpiredException IDX10223: 有効期間の検証に失敗しました。トークンの有効期限が切れています。
私は OAuth と一般的な Web API の保護にかなり慣れていないため、ベースから外れている可能性がありますが、500 エラーは期限切れのトークンには適切ではないようです。これは、Web サービス クライアントにとって決して友好的ではありません。
これは予想される動作ですか? そうでない場合、より適切な応答を得るために何かする必要がありますか?