web-dev-qa-db-ja.com

httpsを使用する場合、extainSecurityContext = "False"を設定するとどのような影響がありますか?

私のWFCサービスは、次のように構成されたwsHttpBindingを使用します。

<security mode="TransportWithMessageCredential">
    <message establishSecurityContext="True" clientCredentialType="UserName"/>
    <transport clientCredentialType="None" proxyCredentialType="None"/>
</security>

パートナーの1人がJava Metroライブラリを使用してサービスを呼び出そうとしています。問題があります this 問題があります。これにbetainSecurityContext = "False"を設定する必要があります。簡単なテストを行いましたが、falseに設定すると実際に機能します。

安全なセッションを使用しない場合の影響は何ですか(betainSecurityContext = "False"を設定することにより)。私はすでにhttpsで実行しています。では、セキュリティの面では大丈夫ですか?そして、考慮すべき他の影響はありますか(おそらくパフォーマンス)?

ありがとう

26
Sylvain

違いは、SCT(セキュリティコンテキストトークン)が有効になっていないエンドポイントでは、キー交換と検証を1回実行してセッション用にキャッシュするのではなく、呼び出しごとに実行する必要があり、代わりにSCTのみがメッセージで渡されることです。 SCTは対称鍵に基づいているため、メッセージの署名/暗号化がはるかに効率的になります。 SCTの使用は、クライアントが連続して多くの呼び出しを行うことが予想される場合に非常に適しています。これにより、毎回1回限りのキーの交換と検証を行う必要が少なくなります。

私がお勧めするのは、SCTをサポートしていないクライアントに別のエンドポイントを公開し、それを使用するように指示することです。 SCTを使用できるクライアントは、デフォルトのエンドポイントを指し示し、それに伴うすべての利点を維持します。

この件について詳しくは、 WS-SecureConversationドキュメントのセクション をご覧ください。

43
Drew Marsh