3

私はこの 1 週間、SO と認証に関する本を読み、HTMLクライアントがユーザーのログイン/登録/ログアウトを許可できるように WebAPI の基本認証を展開し始めましたが、基本認証はログアウトを容易にしないので、 m は振り出しに戻ります。

詳細:

  1. ユーザーが他のサービスにログインできるようにする必要はありません。FacebookやGoogleのログインは必要ありません。ユーザー名/パスワードだけです。

  2. ユーザーが (ブラウザーではなく) クライアント アプリケーションからログイン/ログアウト/登録できるようにする必要があります。

  3. SSL を使用するので、ネットワーク経由で資格情報を送信してもかまいません。

  4. 現在、クライアントは 1 つしかありませんが、API にアクセスするクライアントが他にもあるため、将来的には API キーに似たものを実装する必要があります。多分これは別の問題です。

  5. JSON を受け入れて他のドメインの html/js クライアントに返す RESTish WebAPI があります。

  6. これはプロトタイピング用であるため、可能な限り最善のソリューションは必要ありません。プレリリースに十分で、実装までの時間が短いものだけが必要です。

どこから始めればよいですか?あなたは何をしますか、なぜですか?フォーム認証はオプションですか?

4

2 に答える 2

2

あなたが持っている質問では

SSL を使用するので、ネットワーク経由で資格情報を送信してもかまいません。

あなたが言った答えへのコメントで

ユーザーがプレーンテキストのパスワードをネットワーク経由で送信したくないだけです。

何を探しているのか正確にはわかりませんが、フォーム認証は間違いなくオプションです。基本認証も使用できますが、前述のようないくつかの欠点があります。ログアウトがないなどです。基本認証では HTTPS を使用する必要があります。

ブラウザーのポップアップが主な懸念事項である場合は、最初の要求で資格情報を事前に送信することで回避できます。通常、最初のリクエストは Authorization リクエスト ヘッダーなしで行われます。サービスは 401 で応答し、基本的なスキームを示す WWW-Authenticate 応答ヘッダーを返します。これは、ブラウザーがダイアログをポップアップし、ユーザー ID とパスワードを要求し、それを基本スキームにパッケージ化し、Authorization ヘッダーを送信するときです。

于 2013-04-13T02:52:27.640 に答える
0

第一に、そしてもっと重要なこと。SSL、SSL SSL これは主要なサイトでさえ見逃している非常に単純なステップですが、非常に重要です (SSL の多くの現在の脆弱性を悪用しても)。

webapi では、ほぼすべての種類の認証を使用できます。基本認証; 資格; OAUTH スタイルの認証を使用することを検討できます (仕様が非常に緩く定義されているため、スタイルと言うことに注意してください。ほとんどすべてのオプションとそれを達成するための複数の方法が用意されています)。

何よりもまず、選択肢として WebApi を検討します。他に何か考えたことはありますか?https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorizationの全範囲の認証アダプターを含むhttp://www.servicestack.net/など

第二に、何を認証しているのか、何を認証しているのか (プライベート データ / アップロード / いくつかのものへのアクセス) を知っておくと役に立ちます。「十分なセキュリティ」を含む回答を得るために。

フォーム認証を「使用できます」。クライアントがブラウザベースでないと仮定すると、サービスを介してログインを返し、使用期間中何らかのコンテキストで保持する必要があるフォーム認証トークンで応答することでこれを実現できます。ソフトウェアがAPIの使用を終了するとタイムアウトが設定されると仮定すると、ユーザーは次回それを再利用するために再度ログインする必要があります。


Web API / JS-Html フロントエンドに関する限り。自分自身を引用します。

JS アプリなので、JS に関連する owasp トップ 10 をざっと見てみる価値はあるでしょう。

http://erlend.oftedal.no/blog/?blogid=125

A1 - Injection
A2 - Cross Site Scripting (XSS)
A3 - Broken Authentication and Session Management
A4 - Insecure Direct Object References
A5 - Cross Site Request Forgery (CSRF)
A6 - Security Misconfiguration
A7 - Insecure Cryptographic Storage
A8 - Failure to Restrict URL Access
A9 - Insufficient Transport Layer Protection
A10 - Unvalidated Redirects and Forwards

ここに WebApi のカスタム認証フィルターの作成に関する良い投稿がありますhttp://www.west-wind.com/weblog/posts/2013/Apr/18/A-WebAPI-Basic-Authentication-Authorization-Filter (how-to /コード付き)

于 2013-04-12T20:55:07.890 に答える