如果我使用https,设置establishSecurityContext ="False"有什么影响?

Syl*_*ain 26 security wcf java-metro-framework

我的WFC服务使用wsHttpBinding配置:

<security mode="TransportWithMessageCredential">
    <message establishSecurityContext="True" clientCredentialType="UserName"/>
    <transport clientCredentialType="None" proxyCredentialType="None"/>
</security>
Run Code Online (Sandbox Code Playgroud)

我们的合作伙伴之一是尝试使用java Metro库来调用我们的服务.他们有这个问题.我必须设置establishSecurityContext ="False"才能生效.我们进行了快速测试,当我将其设置为false时,它确实有效.

不使用安全会话会产生什么影响(通过设置establishSecurityContext ="False").我已经在https上运行了.那么我在安全性方面会好吗?是否还有其他需要考虑的影响(性能可能)?

谢谢

Dre*_*rsh 43

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

我建议您只是为不支持SCT的客户端公开另一个端点并告诉他们使用它.可以使用SCT的客户端指向默认端点并保留随附的所有好处.

有关该主题的更多信息,请查看WS-SecureConversation文档的第三部分.

  • 那就对了.如果您关闭,您将终止会话并失去任何好处.就像我说的那样,最好是你自己汇集客户或连​​续多次打电话.此外,我没有指出它,但请记住,使用SCT意味着您正在服务器端使用会话,所以请记住这一点.例如,maxConcurrentSessions的默认值为10. (2认同)