2016-06-16 5 views
1

現在、私たちは、Web APIを使用してデータベースとのすべての認証と通信を行うサイトを構築しようとしています。現時点でわからないことは、Web APIを通じて認証することによってMVCアプリケーションでユーザーを永続化する方法です。MVCアプリケーションからWeb APIへのユーザーの永続化と認証方法

これは物事のMVC側で、Web APIでどのように認証する必要がありますか?

EDIT:認証された後にIDユーザーを取得し、IDのユーザーをMVC側でインスタンス化してセッション変数に格納するだけで、APIへの呼び出しを行うことができるのだろうかと思います私たちのアプリケーションにとどまりません。これは実行可能で、それがどのように見えるだろうか?

答えて

3

MVCはセッションを認証に使用します。クッキーがユーザーに送信され、Webブラウザーは各要求とともにそのクッキーを送り返し、サーバーにセッションを復元させ、ユーザーを認証済みとして認識させるようにします。

Web ApiはRESTベースであり、ステートレスです。セッション、クッキーなどの概念はありません。通常、ベアラトークンなどでAuthorizationヘッダーを渡すことで、各Web API要求を要求で認証する必要があります。

MVCアプリケーションがWeb APIを使用して認証する場合、Web APIは認証トークンをMVCアプリケーションに返す必要があります。 MVCアプリケーションは、その通常の認証Cookieを設定してユーザーに「ログイン」し、トークンを保存して、将来のWeb APIリクエストを認証できるようにする必要があります。言い換えれば、MVCアプリケーションは引き続き通常のように認可を処理します。唯一の違いは、Web APIの応答が、直接行われたデータベースクエリではなく、ユーザ名とパスワードの組み合わせが正しいかどうかを判断するかどうかを判断することです。

+0

WebAPIバックエンドに対して行われたすべてのリクエストも認証される必要があります(トークンをAuthorizationヘッダーに渡してチェックする必要があります)。あなたのシステムを悪意のあるように破壊しようとする人はあなたのWepAPIを直接攻撃するので、MVCクライアント側で認証/許可を処理するだけでは不十分です。 –

+0

私の答えでは、私は言った: "トークンを保存して、それを使って将来のWeb APIリクエストを認証できるようにする"。しかし、それが十分明白でない場合に備えて、はい。 –

関連する問題