2009-08-10 13 views
0

背景:ASP.NETでWebサービスを認証する最も効率的で安全な方法は何ですか?

  1. string GetOrders(string userName,string password,DateTime orderDate)::** は、我々のようなシンプルなASMX Webサービスを公開するASP.NETのWebアプリを持っているユーザー (顧客)に基づいて 顧客注文のXML文字列を返します。

  2. void UpdateOrders(string userName, string password, Guid orderGuid, string orderXml): ためのGUIDに基づいて(XMLペイロードから)ための データを更新します。

例:

WebServiceClient proxy = new WebServiceClient(); 
string xmlData = proxy.GetOrders("james","password",DateTime.Today); 

私の質問は:

  1. 我々はHTTPSを使用していますが:この 方法は、実際に保存するのですか?
  2. ASP.NETのより良い選択肢は何ですか?
+0

httpsを使用すると、要求/応答は暗号化されますが、認証の問題は解決されません。 – Jason

+0

Microsoftは現在、ASMX Webサービスを「レガシーテクノロジ」とみなしていることをご存知でしたか?あなたはWCFを目指すべきです。 –

答えて

2

ここには、これらの問題の一部をカバーするsimilar threadがあります。

一般に、SSL接続を使用しても、クリアテキストでパスワードを送信しないでください。チャレンジレスポンスはパスワードを保護する良い方法ですが、これは多くの銀行も同様です。 基本的に、ユーザーにタイムスタンプなど、サービスを呼び出すタイミングに応じて異なるものを送信します。その後、パスワードハッシュが傍受されたとしても、ユーザーが自分のパスワード+タイムスタンプのハッシュで応答するようにしてください。これは、次回ハッシュと呼ばれるときに異なる必要があるため、サービスへのアクセスには使用できません。

0
  1. 接続し、クライアントとサーバの間では暗号化されているので、資格証明書の伝送は安全です。ただし、接続の内容は安全ではありません。 SSL証明書が破損するか、誰かがそのトラフィックストリームを復号化する場合、ユーザー名とパスワードは基本的にクリアテキストになります。

これはあなたのための安全性は、データの性質とあなたに受け入れられるものによって異なります。

  1. 代わりに、WCF(Windows Communication Foundation)を使用するようにサービスを更新します。これは、Webサービスの認証された許可された通信に対処するためのはるかに堅牢な方法を備えています。
関連する問題