5

モバイル アプリケーションとブラウザ ベースのクライアントとユーザーの両方を持つ REST API を実装しています。私が尋ねた質問とこことsecurity.stackexchangeでの以前の質問に基づいて、できる限り「RESTful」であり続けるには、SSLを介したHTTP基本認証で認証に十分であるという結論に達しました。問題は、それに合わせて 2 要素認証も実装したいということです。username:password:token のような 401 Authorization ヘッダー応答にヘッダーを追加すること、または完全に別の要求ヘッダーにヘッダーを追加することは許容されますが、クライアントによる基本的な認証応答と同じペイロードに追加できますか? node.js + Express/Connect を使用しているため、HTTP プロトコル スタック全体にアクセスできますが、スケーラビリティの理由から、できるだけ安定した状態を維持したいと考えています。ブラウザ側では、

4

1 に答える 1

7

技術的には、HTTP Basic Auth から拡張する新しい認証方式を作成できますが、通常、それらはブラウザーでサポートされません。あなたの例では、ブラウザーがユーザー名とパスワードを簡単に要求できるのと同じ方法で、ネイティブにユーザー名:パスワード:トークンを要求して送信できるとは思いません。

一般に、2 要素認証スキームは、2 番目の例で述べたように、何らかの形式のセッションを使用してユーザーを中間状態にすることで機能します。最初の要素、たとえば基本認証を介したユーザー名/パスワードを通過したユーザーは、セッションが開かれますが、2 番目の要素も通過するまで、実際にログインしているとマークされません。ドングルコードなどを入力します。両方の要素に合格すると、セッションは完全にログインしたものとしてマークされ、アカウント/データなどにアクセスできます。

于 2013-06-11T05:21:58.133 に答える