2012-03-27 8 views
2

私はWCFウェブサービスセキュリティについて1つの質問があります。現在、私たちは1つのアンドロイドモバイルプロジェクトを開発しており、データ転送と操作にwcf Webサービスを使用しています。 basicHttpBindingを使用し、ウィンドウサービスとしてWebサービスをホストしました。WindowsサービスからホストされているWCF Webサービスを保護する方法は?

現時点ではセキュリティモードはありません。サービスアドレスを知っている場合、私たちのWebサービスを使用することができるのではないかと恐れています。 たとえば、1つのサービスメソッドがあり、それは文字列値を返します。現在、私はそのサービスを他のビジュアルスタジオプロジェクトやモバイルプロジェクトに追加することができ、いつでも使用することができます。

//WCF Service Method 
public string DoWork() 
{ 
     return "This is return string!"; 
} 

    //We can consume it like below from other dot net project by adding service reference. 
    //Actually, those are not real client. 
    ServiceReference1.WebServiceClient serv = new TestingPrj.ServiceReference1.WebServiceClient(); 
    string result = serv.DoWork(); 

私の質問は、どのようにして実際のクライアントのWebサービスを保護できますか?私は、他のプロジェクトや人々がWebサービスを消費することを望んでいません。

+0

多くのヘルプがあります:https://www.google.com/#q=securing+wcf+web+services –

+0

私はすでに試していますが、ほとんどの回答はIISでホストされているWebサービス向けです。それで私はなぜここに質問を入れたのですか?とにかく、あなたの助けに感謝します。 – Chong

答えて

0

SSL証明書を使用するのが最も安全な方法です。

+0

SSL認証は、サービスにアクセスしている間違ったユーザーからどのように保護されますか? – mellamokb

+0

サービスはウィンドウサービスとしてホストされており、IISサーバーは使用しません。 このようにSSL暗号を使用することはできますか? – Chong

+0

はい、設定ファイルを使用するか、サービスをコーディングしてHTTPSを要求することができます。 Windowsサービスが実行されているサーバーに証明書がインストールされている場合は、証明書にバインドする必要があります。 – mellamokb

1

最も簡単な方法は、SSLによる基本認証を使用することです。基本認証では、クライアントにはユーザー名とパスワードのペアが必要です。アプリケーションとのみ知っているだけです。認証が純粋にあなたのクライアントが正しいかどうかを知ることである場合(接続しているユーザを知るのではなく)、ハードコードされた単一のユーザ名/パスワードを使用できます。

SSLも同様に使用して、資格情報がプレーンテキストでワイヤを移動することはなく、潜在的に盗聴される可能性があります。

関連する問題