2017-12-19 8 views
0

AngularJSをフロントエンドに使用するAsp.Net MVC 5.0プロジェクトがあります。プロジェクトには同じプロジェクト内にWebAPIコントローラがあり、同じWebサイトに展開されています。アプリケーションは個々のユーザーアカウントプロジェクトテンプレートで構築され、Asp.Net IDとクレームを使用します。 webapiとng-file-uploadプラグインを経由して100MB以上のファイルをアップロードするファイルアップロードモジュールがあります。ユーザーベースが増加したため、新しいサーバーでAPIを単独のサイトに分離し、必要に応じて拡張することで、アップロード速度をすばやく向上させたいと考えました。 APIコントローラは現在OWINクッキー認証を使用するASP.Net MVCソリューションの下にあるため、APIはクッキー認証ミドルウェアによって認可されています。 APIを別のサイトにすばやく取得する方法を教えてください。私は、MVCサイトに基づいてOAUTHトークンを実装し、CORSを有効にしてトークンを消費する新しいAPIサイトを作成する必要があると考えています。これを行うと、Cookieベースの認証を削除し、新しいトークンベースの認証を使用して認証を再実装する必要があるかどうかはわかりません。 Asp.Net MVCサイトに対してCookieベースの認証を使用し、apiを新しいサイトに分離することで、ここで取り上げることができる他のアプローチはありますか?Asp.Netから別のサイトにAsp.Net WebAPIを移動AngularJS AppのMVCサイト

注 - このAPIを使用してモバイルアプリを構築する予定であるため、webapiを別のサイトに分けてOAuthトークンベースの認証を取得する必要があると考えています。

ありがとうございます!

よろしく、 バラ

答えて

0

あなたのMVCのサイトはすべての主要なバックエンドのC#せずにのみ、クライアント側のコードになるだろうされている場合。これは、保護が必要なAPIからデータが来るため、セキュリティは必要ありません。あなたは別のドメインで2つを分離したくない場合。 Angularはサーバーから送信されたユーザー情報を読み取る必要があります。そのため、暗号化されたCookieのみが動作しません。彼らが別のサーバーとドメインになり、APIの複数のコンシューマーが必要な場合は、orefとトークンベースのログインとorefにトークンベースのログインに移動する必要があります。この方法で、APIを複数のロードバランサに拡張しても、ベアラトークンを使用することができ、ステートレスになります。これは、トークンをクッキーに格納することでクッキーでこれを達成することができると言われています。角度は解析して値を使用することができ、APIはトークンの署名を検証して値を使用できます。同じドメインにいなければならないので、Cookieを共有できます。これは、クッキーを使用せずに単にLocalStorageを使用することによっても行うことができます。

+0

MVCサイトはハイブリッドで、一部のモジュールでバックエンドC#コードを持ち、一部のモジュールでAngularJSを使用します。それはなぜそれがクッキー認証を使用し、APIがクッキー認証が行われた後にアクセスされる同じサイトの下にあるのでです。したがって、MVCサイトでOAuthトークン認証を有効にし、APIを別のサーバーの新しいドメインに分けても、トークンを送信できるのでしょうか?もしそうなら、MVCサイトからのクッキー認証の後にトークンを取得して新しいAPIサイトに送ることができますか?すべてのポインタ? – Bala

+0

同じ親ドメイン上の2つのドメイン間で共有されるCookieの使用。このためにoAuthを使う必要さえないかもしれません。 apiとmvcの両方で同じマシンキーを使うだけで、mvcで暗号化されたcookieをapiで復号化することができます。私は個人的には間違った方向に向かってこのソリューションを推奨しませんが、それは仕事を完了させるでしょう。 oAuthを必要とせずに、通常のcookie認証は両方で動作します。 (マシンキーとドメインを共有する必要があります) – Axr

+0

mvcサイト(parentsite.com)とapiが別のサーバーのapi.parentsite.comで、同じマシンキーを使用すると同じことが起こるのでしょうか?セッションはどうですか?それは右のAPIサーバーで利用できないのですか? apiサーバーで同じCookieがどのように認証されますか? – Bala

関連する問題