Jac*_*ord 11 java security wcf
最近我们将服务暴露给Java客户端.我们的服务利用传输安全性以及用户名/密码验证.
尝试调用我们的服务时,客户端收到有关安全标头的异常.进一步的研究表明,WCF希望时间戳包含在从客户端传递的SOAP头中.如果不存在(或方差大于5分钟),则会抛出异常.
我们还发现Java客户端没有传递WCF所期望的时间戳.我们发现的唯一解决方法是实现CustomBinding并将IncludeTimestamp设置为false.这允许客户端成功调用该服务.
今天在查看WCF安全性的最佳实践时,我在MSDN上看到以下内容:
在自定义绑定上将SecurityBindingElement.IncludeTimestamp设置为True
创建自定义绑定时,必须将IncludeTimestamp设置为true.否则,如果IncludeTimestamp设置为false,并且客户端使用非对称的基于密钥的令牌(如X509证书),则不会对该消息进行签名.
所以,我的问题是在向非.NET客户端使用SSL(传输)时将WCF(以及最终的Web API)服务暴露给外部世界的最佳实践是什么?