2012-07-12 76 views
0

该方案是我们有一个WCF服务,它使用我们构建的内部Web服务的方法。通过web服务传递时的Wcf安全性(.asmx)

WCF服务非常轻量级。

我们希望保护此WCF服务,以便只有某些客户端可以使用它(它当前正坐在面向公众的服务器上)。

我们无法在这台面向公众的服务器上安装证书,因此我们想知道最佳安全模型的使用方法。

理想情况下,它可以被配置为使客户端使用WCF服务简单地“传递”到内部Web服务的证书,因为这是在我们控制的服务器上,然后证书验证发生。

这是可能的..?如果没有,我们可以使用其他安全选项..?

在此先感谢。

+0

据我所知,您的面向公众的Web服务器将不得不'接受'客户证书。否则,客户端证书不可用于WCF行为(用于转发)。 – 2012-07-12 09:54:31

+0

那么这是否意味着公共服务器上的IIS无法设置,因此客户端传递的证书“未被检查”并简单地转发到内部服务器上? – user811826 2012-07-12 13:15:25

+0

不确定,我*认为*如果IIS处理它将在客户端证书上转发的请求,但不要在此引用我。但是,如果您有反向代理而不是IIS,那么它只会转发请求。 – 2012-07-12 15:10:59

回答

0

我想你必须详细说明你自己的自定义安全模型。

要解决的主要问题是如何共享您和客户端之间的“密钥”。 您无法安装证书,因此您必须将密钥存储在其他地方,例如web.config内的部分......并以安全的方式分发给客户端。

您可以使用此密钥对消息进行签名或加密;你也可以使用密码加密的标准模式。

检查是否可以使用某些WS-Security功能!!!

此外,还检查.Net Framework提供的绑定身份验证和保护模式。

1

解决方法是使用邮件头并检查客户端的凭证。那就是你可以通过消息头中的用户名和密码来检查它在wcf服务上,如果罚款处理请求,否则丢弃它。