Wcf 设置establishSecurityContext=";有什么影响;假;如果我使用https?

Wcf 设置establishSecurityContext=";有什么影响;假;如果我使用https?,wcf,security,java-metro-framework,Wcf,Security,Java Metro Framework,My WFC服务使用的wsHttpBinding配置为: <security mode="TransportWithMessageCredential"> <message establishSecurityContext="True" clientCredentialType="UserName"/> <transport clientCredentialType="None" proxyCredentialType="None"/> <

My WFC服务使用的wsHttpBinding配置为:

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

我们的一个合作伙伴正在尝试使用java Metro库调用我们的服务。他们有问题。我必须设置establishSecurityContext=“False”才能使其工作。我们做了一个快速测试,当我将它设置为false时,它确实有效

不使用安全会话(通过设置establishSecurityContext=“False”)会有什么影响。我已经在https上运行了。那么我在安全方面还好吗?还有其他的影响要考虑吗?(性能可能)?
感谢

不同之处在于,在未启用SCT(安全上下文令牌)的端点上,每次调用都必须进行密钥交换和验证,而不是只进行一次并缓存一次会话,而只在消息中传递SCT。SCT基于对称密钥,这使得它们在签名/加密消息时更加高效。当客户机需要连续进行多次调用时,使用SCT是非常好的,因为它减少了每次交换和验证一次性密钥的需要

我建议您为不支持SCT的客户机公开另一个端点,并告诉他们使用它。可以使用SCT的客户端,您可以将其指向默认端点,并保留它带来的所有好处


有关此主题的更多信息,请查看。

关于使用单独端点的极好建议-允许每种客户端类型为他们使用“最佳”端点!Drew,我的客户在每次服务电话中都会打开和关闭他们的频道。即使我启用了安全会话;他们没有从中得到好处。对吗?对。如果关闭,您将终止会话,并将失去任何好处。就像我说的,最好是你自己集中客户或者连续打多个电话。另外,我没有指出这一点,但请记住,使用SCT意味着您正在服务器端使用会话,所以请记住这一点。例如,maxConcurrentSessions的默认值是10。这是一个老问题,但仍然相关。SCT似乎不通过HTTPS级负载平衡器,后者充当SSL终止符,即使未使用SSL卸载。也就是说,客户端使用SSL点击负载平衡器,后者终止并启动到负载平衡器后面某台机器的新SSL连接。这不适用于相互SSL身份验证,也不适用于SCT。