WSHttpBinding(サービス側)またはWCFテストクライアント(クライアント側)でデフォルトで使用されるセキュリティは何ですか?


8

最近、サービスをBasicHttpBindingからWSHttpBindingに移動しました(つまり、SOAP 1.1- > SOAP 1.2)。でWCF、WSHttpBinding()を使用することは、いくつかのデフォルトのセキュリティ設定を使用して起動します。クライアントとサーバーは「セキュリティで保護された」WSHttpBindingに切り替えた後も会話を続けることができるため、WCFテストクライアントでも同じデフォルトのセキュリティ設定が使用されていると思います。フィドラーでは、以前は非常に単純だったリクエスト/レスポンスから、より複雑なセキュリティハンドシェイクを見ることができるため、このセキュリティ設定を確認しました

以前:(BasicHttpBinding)

  1. [HttpRequest](SOAP Request in Clear)

    [HttpResponse](SOAP Response in Clear)

後:(WSHttpBinding)

  1. [HttpRequest] RequestSecurityToken

    [HttpResponse] RequestSecurityTokenResponse

  2. [HttpRequest] RequestSecurityToken

    [HttpResponse] RequestSecurityTokenResponse

  3. [HttpRequest] RequestSecurityTokenResponse

    [HttpResponse] RequestSecurityTokenResponseCollection

  4. [HttpRequest] EncryptedData

    [HttpResponse] EncryptedData

  5. [HttpRequest] EncryptedData (実際のアプリケーションレベルのリクエスト)

    [HttpResponse] EncryptedData (実際のアプリケーションレベルの応答)

したがって、セキュリティが適用されていると想定できます。次に質問です。

質問1:セキュリティ設定とは何ですか? メンバーシッププロバイダーについてWCFに語ったことはありません。実際、ユーザー名<->パスワードのテーブル(SQLまたはXML)はありません。では、どのような認証が行われているのでしょうか。WCFテストクライアントは上記のように認証できますが、SoapUIはこれらのMicrosoft .NETデフォルトを取得しないため、問題があります。SoapUIがクリアテキスト通信を試行すると、サーバーは不正なセキュリティトークンエラーで応答します。

質問2:SOAP 1.2で最も一般的に実施されているセキュリティモデルは何ですか? 証明書、ユーザー名、パスワード、ダイジェスト、または_____を使用していますか?これらの資格情報はどのように保存され(SQL / XML?)、WCFサーバー側で構成されますか?

回答:


7

まあ、有名なWSHTTPBinding。.NET以外のプラットフォームでは多くの問題が発生します。

まず第一に、SOAP 1.2が標準であるとしても、WSHTTPBindingはSOAP 1.2を介したMicrosoftの実装であり、経験上、「当社の製品はSOAP 1.2をサポートしているため、WCFおよびWSHTTPBindingサービスで動作し、問題ありません!」

回答1

2つの主要なセキュリティ設定があります。

  • メッセージのセキュリティ:メッセージは部分的に暗号化されています、デフォルト
  • トランスポートセキュリティ:SSLを使用してチャネルを保護します

認証について、WSHTTPBindingはデフォルトでWindows資格情報(NTLMまたはKerberos)を使用します。

回答2

状況によって異なりますが、簡単な答えは次のとおりです。

  • メッセージを再ルーティングまたは検査する必要があります。メッセージセキュリティを使用してください
  • ポイントツーポイントチャネルが必要で、それらを証明書で保護できます。トランスポートセキュリティを使用します。
  • クライアントとサーバーは同じ認証プラットフォームを共有し、Windows認証を使用します
  • 外部クライアントのオープン認証、またはクロスプラットフォームが必要で、ユーザー名認証を使用する

ユーザー名認証については、さまざまな構成があります。資格情報はSQLデータベースに保存できます(一部のサービスについては、社内でこれを行っています)。

いくつかの単純なケース:Webサービスセキュリティの改善:WCFのシナリオと実装ガイダンス


ありがとう!そのリンクも非常に便利です。外部/サードパーティのクライアントをサポートする必要があるので、SOAP 1.2 + SSL +基本認証を検討しています。そのセットアップで特定のヒント/注意事項はありますか?WS2007HttpBindingはWSHttpBindingよりも推奨されますか?
DeepSpace101 2012

1
WS2007HttpBindingについてはあまり知りませんが、サポートされているプロトコルの説明はmsdn.microsoft.com/en-us/library/ms730294.aspxで確認できます。設定については、サービスインスタンスモードとバインディングメッセージサイズとタイムアウトを適切に構成するために、いくつかの分析を行う必要があります。
JoeBilly、2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.