2009-07-28 13 views
2

以前は公開されていたASP.NET Webサービスをビルドしていましたが、Windows認証を使用していました。 SOAP 1.1プロトコルを使用するWebサービスを構築する必要があり、呼び出し元からのユーザー名とパスワードで保護する必要があります。ASP.NET Webサービスのセキュリティ

WCPのためのsetting up the infrastructureは、1つまたは2つのWebサービスのための過剰です。その他の提案はありますか?このシナリオでは、あなたの意見を知ることが役に立つと思っている人は、ASP.NET 4.0 Betaを使用することも考えていました。

ご協力いただきありがとうございます。

答えて

6

簡単な方法は、認可/道

は、ここではいくつかのサンプルコードですユーザーのすべての呼び出しのための認証情報を運ぶ特別なヘッダを作成し、認証することです: http://aspalliance.com/805_Soap_Headers_Authentication_in_Web_Services

注意を、この方法では、あなたクリアテキストのユーザ名とパスワードを送信しているので、sslを使用するか、何らかのダイジェスト認証を使用したいと考えています。

+0

消費側のクライアントがPHP SOAPなどのライブラリを使用する場合、ライブラリを介して簡単にヘッダに書き込むことができますか? – Josh

+0

私はPHPでそれをしていないが、ライブラリがカスタムヘッダーをサポートしている限り、問題はないはずです。 – Jaime

+0

.NET 4.0でこれを行い、2つの構文エラーがありました 1)スペースが必要ですnewlocalhost: localhost.AuthSoapHd objAuthSoapHeader = newlocalhost.AuthSoapHd(); 2)Webメソッドへの呼び出しで、spAuthenticationHeaderをパラメータとして渡す必要がありました – Ronald

0

これはさまざまな方法があります。特定のIPセットへのアクセスを可能にすることができます。 IPがリストの1つと一致しない場合は、メソッドのレベルでコールを簡単に拒否できます。

それ以外の場合は、トークンを返す別のメソッドを作成し、関連するすべてのメソッドを作成して、要求を処理するためにそのトークンを返すことができます。

0

SSLを使用してください。 Webサービスを使用するすべての人にhttpsを使用させます。

 //Check for Secure Channel: HTTPS 
     if (!Context.Request.IsSecureConnection) 
      return "The HTTP Connection must use Secure Sockets (HTTPS)"; 
関連する問題