有些公司有兴趣将我们的软件与他们的软件集成。我们开始研究为他们提供网络服务以供他们通过互联网消费。我们将使用 WCF 构建 Web 服务。我们不能保证每个集成商都会使用 WCF 或 .NET,因此互操作性很重要。
我们希望在每个第 3 方集成商使用用户名和密码调用我们的服务操作时对其进行身份验证。或者,我读到可以使用证书实现客户端身份验证,但这看起来很复杂。
我们计划在 IIS 中托管该服务。
WCF 中可用的选项太多了。基于以上内容,建议使用什么配置(绑定(bind)/安全)?
是否可以使用IIS做托管,basicHttpBinding,membership provider做认证,SSL做加密?这些东西能协同工作吗?
最佳答案
一定要使用 BasicHttpBinding
和 HTTPS。 BasiHttpBinding
提供最简单的 SOAP 互操作服务,HTTPS 将确保客户端和您的服务之间的传输安全。
要对用户进行身份验证,您可以使用 BasicHttpBinding
的 TransportWithMessageCredential
安全模式。此安全配置需要消息中的标准化 SOAP header (用户名 token 配置文件)。 header (在 WCF 的情况下)包含纯文本形式的用户名和密码。在这种情况下,纯文本不是问题,因为整个传输都由 SSL (HTTPS) 保护。即使您的客户不是 WCF 并且没有任何特殊的 SOAP 堆栈,添加此 header 也应该很容易。此外,直接使用此身份验证类型允许您使用成员身份提供商验证用户名或编写自定义密码验证器。
关于.net - 关于第 3 方集成商的 wcf 服务的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6358789/