3

私たちのシナリオ:

私たちのソリューションは、単一ページの JavaScript アプリケーションを提供する MVC アプリと、スタンドアロン API および SPA のデータ ソースとして使用することを目的とした Asp.Net WebAPI アプリで構成されています。

2 つのアプリが認証トークンとメンバーシップを共有するようにすべてを設定したので、SPA にログインすると、同じフォーム認証 Cookie によって API へのアクセスも許可されます。

これは、ブラウザーのアドレス バーで API 要求を行う場合は正常に機能しますが、AJAX を介しては機能しません。Thinktecture を使用して基本認証をセットアップする例に従いました。ユーザー名\パスワードを ajax 呼び出しの認証ヘッダーとしてハードコーディングすると、これも正常に機能します。

私の質問は、クライアント側でこれらの詳細を永続化する正しい方法は何ですか? これまでの唯一の現実的な解決策は、SPA の初期ロードの一部としてユーザー名\パスワードのベース 64 ハッシュを送信し、必要に応じてこれを引き出すことです。ただし、これは安全ではないようです。

つまり、基本的に、この状況で「正しい」アプローチが何であるかを考えているだけです...私たちは閉じていますか、それとも見落としている別のアプローチがありますか?

ありがとう!

4

1 に答える 1

0

Thinktecture.IdentityModel のセッション トークン サポートを使用し、動的に生成されたスクリプトを介してクライアントがトークンを利用できるようにします。

詳細はhttp://ben.onfabrik.com/posts/dog-fooding-our-api-authenticationをご覧ください

これらの概念を示すサンプル アプリケーションもhttps://github.com/benfoster/ApiDogFoodで公開しました。

于 2013-03-29T00:12:38.963 に答える