一連の ASP.Net 2.0 .asmx Web サービスを保護しようとしています。Web サービスをホストする は、すでにフォーム認証されています。
フォーム認証を使用して Web サービスを保護することは可能ですか? これを達成するための長所と短所、およびその他の可能な方法は何ですか。確かに、各 Web メソッド呼び出しでユーザー名/パスワードまたはトークンを渡したくありません。
4 に答える
フォーム認証の特徴は、Web サービスがクライアント アプリケーションによって消費されるように設計されているのに対し、人々のために設計されていることです。このように認証を行うことは可能ですが、それは間違った考え方です。
必要なセキュリティのレベルは、扱うデータの機密性によって明らかに異なりますが、少なくともある程度機密性が高い (銀行取引よりは低い) と仮定します。私がこれを入力している間に、jle が提案したように SSL を使用してユーザー名とパスワードを渡すことも、flickr と同じように API キーを要求することもできます。
別のより安全なオプションは、ユーザー名とパスワードを 1 回だけ (ssl のセキュリティで) 渡し、一定期間有効なトークンを発行させることです。これには、パスワード情報を保護し、ssl の一定のオーバーヘッドを回避するという利点があります。
ただし、前述のように、保護しようとしている情報の機密性に大きく依存します。
WSEは廃止されました。選択の余地がない限り、使用しないでください。
WSEのほとんどすべての機能は、WCFによってより適切に実装されます。WCFによって実装されていない残りの機能は、それ自体が廃止されています(たとえば、DIME)。
可能ですが、ユーザーをログイン ページにリダイレクトする必要があります。username/pw を渡す別のオプションは、ssl経由で Web サービスを使用することです。接続を暗号化すれば、基本認証は問題なく使用できます。
フォーム認証を使用してサービスを保護するために WSE を使用できるはずですが、個人的にはそうする必要はありませんでした。
WSE を使用したリソースを次に示します。
- http://aleemkhan.wordpress.com/2007/09/18/using-wse-30-for-web-service-authentication/
- http://msdn.microsoft.com/en-us/library/aa480575.aspx
WSE を使用しないためには、他の presponder の一部がほのめかしたように、次のようなものを実装する必要がありますが、それがどれほど信頼できるかはわかりません。