
そこで、WCF を使用して、非同期で切断されたインターネット経由のメッセージングを行いたいと思っています。おそらく、Apache ActiveMQ の経験があるため、このために MSMQ を検討しています。
ActiveMQ では、キュー接続を暗号化するのは簡単でした。ブローカーへの SSL ベースの接続を選択するだけで、ブローカーとクライアント間の通信を保護するための基本的な SSL レイヤーが用意されていました。(ActiveMQ ブローカーで WCF クライアントを使用することを検討すべきでしょうか?)
MSMQ 暗号化と MSMQ SSL を Google で検索しても、同様のものは見つかりません。私が何か見逃しているだけなのだろうか?
メッセージの暗号化に関するやや複雑そうなもの、HTTPS の使用に関する的外れなもの、Active Directory を必要とするものなどを見つけましたが、メッセージだけでなくすべての通信を保護したいと考えており、切断された操作が必要で、Active Directory を使用できないため、バインディングとして HTTPS を使用したくありません。
これを行う最善の方法は何ですか?
答え1
しますかhttp://blogs.msdn.com/motleyqueue/archive/2007/10/06/complementing-msmq-security-with-wcf.aspx関連性はありますか? これは、トランスポート レベルの設定を示唆しているようで、メッセージの暗号化も示唆しています。
答え2
OK、ようやく非 Active Directory MSMQ 暗号化を実行するための参照を見つけました。こちらがリンクです。ドキュメントが見つかれば、難しくはありません!
これは、MSMQ でメッセージ暗号化を使用し、Active Directory を使用しない方法です。
http://msdn.microsoft.com/en-us/library/aa395200.aspx
TFAより:
実証する
クライアントは、サービスの公開キーを使用してメッセージを暗号化し、独自の証明書を使用してメッセージに署名します。キューからメッセージを読み取るサービスは、信頼されたユーザー ストア内の証明書を使用してクライアント証明書を認証します。次に、メッセージを復号化し、サービス操作にメッセージをディスパッチします。
Windows Communication Foundation (WCF) メッセージは MSMQ メッセージの本文のペイロードとして伝送されるため、本文は MSMQ ストア内で暗号化されたままになります。これにより、メッセージが不用意に漏洩するのを防止できます。MSMQ 自体は、伝送するメッセージが暗号化されているかどうかを認識しないことに注意してください。
このサンプルは、メッセージ レベルでの相互認証を MSMQ で使用する方法を示しています。証明書は帯域外で交換されます。キューに入れられたアプリケーションでは、サービスとクライアントが同時に起動して実行される必要がないため、常にこのようになります。
説明 サンプル クライアントとサービス コードは、Transacted MSMQ Binding サンプルと同じですが、1 つの違いがあります。操作コントラクトには保護レベルの注釈が付けられており、これはメッセージに署名と暗号化が必要であることを示しています。