2011-02-16 141 views
2

我的系统基于.net。他们的系统基于PHP。我们希望交换信息进行查找并将数据添加到相应的数据库。这必须安全地完成,这两个系统将成为这场比赛中唯一的球员。如何安全地在PHP和WCF之间进行通信

我一直在做一些研究,但与安全有关的东西总是让我失望。我不得不承认,我完全理解配置文件(WCF Web服务站点中的web.config)中的所有内容。

从哪里开始确保他们安全地传输数据?假设我找出绑定的东西,他们会发送一个用户名和密码,我将不得不从他们的消息中提取出来吗?客户端将连接到https地址。

回答

3

实际上有很多方法来回答这个...

我认为他们的PHP应用程序将被传递到您的WCF服务器SOAP?

因此,WCF在传输级别或消息级别有两种方法来保护事物。 基本上,如果您打开传输级安全性,则它会加密整个连接。这意味着它会使用HTTPS。这反过来意味着整个对话都是加密的,就像您将信用卡信息以网页形式发送到网站一样。它同样安全。另一种方法是消息级安全。这意味着不是对整个连接进行加密,而是通过普通的未加密的HTTP进行通信,但实际的消息本身在通过线路传输之前将被加密。

如果您的服务托管在IIS中,那么最简单的方法就是使用BasicHttpBinding并打开传输安全性。然后在IIS中,让它使用SSL证书和HTTPS。

这将处理消息加密。过去,如果你需要处理'登录'作为用户名和密码,WCF有一个内置的方式来处理。这可能有所帮助:http://nirajrules.wordpress.com/2009/05/22/username-over-https-custombinding-with-wcf%E2%80%99s-channelfactory-interface/

+0

谢谢!这肯定会清除一些事情。该链接也很有帮助。 – Michael 2011-02-16 21:57:18

1

您确实需要根据Web服务标准来确定PHP的局限性。它可以处理WS-Security吗?

您可能通过SSL将限制为basicHttpBinding,在SOAP Header中发送用户名/密码(假设它处理SOAP标头)。

3

PHP本身不支持消息安全性。你需要一些额外的框架来支持它。我将WCF客户端与PHP公开的带有WSO2 web services framework提供的消息安全的Web服务集成在一起。 WSO2框架没有WCF那么多功能(至少PHP开发人员告诉它),它支持具有服务器和客户端证书(X.509证书令牌配置文件)以及用户名和密码作为支持的非对称安全(WS-Security)令牌(带有消化密码的用户名令牌配置文件)。证书用于消息加密和签名,用户名用于验证。这种集成是相当复杂的任务,因为相比之下,WCF不支持使用消化密码的用户名令牌配置文件,我们必须自己实现它。

因此,如果您可以使用HTTPS(传输安全)与消息凭据(用户名称令牌配置文件与普通密码)肯定会这样。它简单得多,简单得多。

相关问题