2017-07-14 14 views
0

私はWeb API(認証用asp.netコアを使用)用の認証ミドルウェアを作成しようとしていますが、認証の失敗を示す方法がわかりません。認証ミドルウェア - 失敗の表示

アイデアは、次のような複数の認証方法を許可したいということです。 (認証ヘッダーを使用して)ベーシック(認証ヘッダーを使用して)、要求の本文に資格情報を渡して、おそらくベアラートークンなどを取得することができます。

ミドルウェア内で成功または失敗を示す方法はわかりません。私が唯一のミドルウェアである「ものをやる」(ロギングなど)に書いており、リクエストが気楽に実行されるようにしています。

認証に失敗した場合は、どうすればいいのですか? HTTPステータスコードを返信したいのですが、リクエストパイプラインの残りの部分がどうなっているのか分かりません。その時点までに以前のミドルウェアを元通りに戻します。

これは認証なので、パイプラインの最初のミドルウェアの1つである必要があると思います。

複数の認証方法をサポートする場合は、すべて同じミドルウェアに貼り付ける方が良いでしょうか、ミドルウェアごとに1つの認証メカニズムにすることが可能です(またはそれ以上)。 これが可能であれば、「提供された資格情報が悪い、ここで失敗する」と「このミドルウェアがサポートしている適切な資格情報が見つからなかったのですが、次の"

私は1つのミドルウェアが1つのことを考えていますが、開発者が正しい順序で入れているので、チェーンの最後のものであることを知る必要があるミドルウェアに熱心ではありません(簡単に忘れて、後でそれを動かす)。

ありがとうございました。

答えて

1

Asp.Net Coreの全面的な認証/認可の枠組みがあります。

最初に考慮すべきことは、認証と認可を分離することです。認証ミドルウェアは要求を見て、ClaimsIdentityを生成しようとします。失敗した場合は、リクエストを終了する必要はなく、匿名で続けることができます。これにより、複数の種類の認証を連鎖させることができます。

認証ミドルウェアを取得したら、結果に対して承認を行うことができます。これを1つのブランケットミドルウェア、またはMVCコントローラまたはアクションごとに細かく行うことができます。

しかし、一般的には、ミドルウェアの順序はよく機能するアプリケーションにとって重要です。

関連する問題