WS-Security如何互通?

时间:2011-12-28 19:20:19

标签: wcf security soap ws-security

我最近参与了一个涉及WCF服务的项目,并使用wsHttpBinding进行身份验证。使用PHP服务该服务的第三方抱怨说这种方法在PHP中没有开箱即用,并且它不能互操作(他们更喜欢RESTful方法,通过GET传递凭证......)

我从来没有使用过PHP服务,他们的论点是否适用于水?

扩展:

在您的语言/环境中无法获得开箱即用的功能并不一定是缺乏互操作性的好理由,我并不是真的相信它们。我很好奇它是如何在更广泛的范围内互操作,因为我希望我的服务很容易消费,而不仅仅是.NET客户端。

附加说明:

我使用TransportWithMessageCredential,凭据在服务中验证,而不是由IIS验证。以这种方式向RESTful服务提供凭据的首选方法是什么? (这应该是一个单独的问题吗?)。我只是想知道在这种情况下它是否是一个可行的选择。

2 个答案:

答案 0 :(得分:1)

我的一些客户也遇到了同样的问题(也是从PHP调用我的服务)。

所以我们刚刚公开了一个额外的 basicHttpBinding 端点。

我在该端点使用传输安全性和 UsernamePassword 身份验证。

答案 1 :(得分:0)

确实,REST很容易在各种编程平台和操作系统上实现(例如,Linux盒子上的PHP,这是一种非常常见的设置)。

WS-Security作为SOAP的扩展,是一种标准化协议,并且存在除.NET以外的其他平台的实现。但是,这里的免费库范围非常有限(对于PHP,我不知道),这肯定意味着连接到WS-Security服务而不是简单的REST服务,至少如果服务使用协议超出普通SOAP范围的功能。

还有一件事:HTTP内置了身份验证支持,因此您绝对可以实现经过身份验证的RESTful服务,而无需向请求的URL添加凭据。