0

私は、WCF を使用して、組織内のすべてのコンピューターを定期的に "家に呼び寄せる" ソリューションを設計しています。説明のために、組織内の各コンピューターに気象センサーが接続されているとします。このアプリケーションの目的は、各コンピューターが中央サーバーに接続して、その場所の天気を報告することです。送信されるデータは文字列としてエンコードされます。

説明のために、1 日に 1 回メソッドを呼び出す Windows サービスがあるとしますSendWeatherReport。この関数のシグネチャは次のとおりです。

void SendWeatherReport(string report);

次のインターフェイスを使用して WCF メソッドをセットアップしたとします。

[ServiceContract]
public interface IWeatherReportReceiver
{
    [OperationContract]
    void GetReport(string report);
}

次の要件があります。

1) 私の天気予報の情報は機密情報です。セキュリティのために暗号化する必要があります。

2) 気象情報をインターネットで配信します。レポートを受信する WCF サービスを実行しているコンピューターは にありますexample.com

3) 天気予報は、サーバーに送信される途中で、過度に設定されたファイアウォールを通過する必要があります。

要件を説明したので、これらの要件を満たすようにエンドポイント構成をセットアップする方法を説明してください。

(1) を満たすには、net tcp バインディングを使用する必要があると思います。(3) については、ポート 80、443、またはその他の一般的に使用されるポートで動作するように、このバインドを構成できます。ここでの私の主な懸念は、WCF サーバーに対して自分自身を識別するようにソフトウェアを構成する方法がわからないことです...

4

2 に答える 2

3

WsHttpBindingは、httpsがなくてもメッセージを暗号化できます。

SOAP暗号化を使用する場合はSecurityMode="Message"でバインディングを作成する必要があり、httpsを使用する(そして使用できる)場合はSecurityMode="Transport"を作成する必要があります。

プロキシはhttpトラフィックしか許可しないことが多いため、HTTPプロトコルを使用すると、バイナリTCPよりもはるかに簡単にデプロイできると思います。

認証に関しては、状況によって異なります:)最も安全なメカニズムはクライアント証明書を使用することですが、標準のユーザー/パスワード認証と比較して必要ですか?(および動作するために必要なすべてのインフラストラクチャ)

于 2011-11-30T16:06:03.890 に答える
2

Microsoft の Service Busに最適なアプリケーションのように思えます。

于 2011-11-30T17:08:17.563 に答える