ストレートHTML5とWebAPIRESTfulサービスを使用して新しいasp.netWebAPIアプリケーションを構築しています。すでにフォーム認証と[Authorize]属性を使用して、WebAPI呼び出しを保護しています。私は、安らかな原則にできる限り忠実であり続けようとしています。
2要素認証を使用し、asp.netWebフォームを使用する既存のアプリの機能を模倣しています。二要素認証は、ログインには使用されませんが、サイトとプラグインを介して別のマシンにリモート接続するという追加のタスクに使用されます。
既存のWebアプリケーションは、セッション状態を使用して、生成されてユーザーに電子メールで送信されるピンを格納します。次に、ユーザーがPINを入力すると、セッション状態のPINと照合されます。
だから私の選択肢は...
- サーバーで生成されたピンを暗号化し、JavaScriptでクライアントに送り返します。このオプションはセキュリティリスクのようです。これは、より安らかなオプションになります。
- 同僚は、AmazonS3が公開鍵と秘密鍵のペアを使用して行うようなものを使用することを提案しました。
- Web APIを使用しているにもかかわらず、セッション状態を使用します。
では、これらのオプションのうち、最良のオプションは何ですか?他の可能性はありますか?