我们的生产环境中有SOAP Web服务,它们依赖于包含纯客户端凭据的SOAP头进行身份验证。这些Web服务在.NET / Java / PHP / Python / C ++客户端(无论是Web应用程序还是桌面应用程序)中使用,这些客户端都是异构的。
我们正在考虑为这些Web服务提供v2版本,我想知道什么被认为是WS SOAP身份验证的最佳实践?(合理安全,且易于在各种平台上处理)。
我们的生产环境中有SOAP Web服务,它们依赖于包含纯客户端凭据的SOAP头进行身份验证。这些Web服务在.NET / Java / PHP / Python / C ++客户端(无论是Web应用程序还是桌面应用程序)中使用,这些客户端都是异构的。
我们正在考虑为这些Web服务提供v2版本,我想知道什么被认为是WS SOAP身份验证的最佳实践?(合理安全,且易于在各种平台上处理)。
在各种平台上处理它最简单的方式是使用HTTP基本身份验证和HTTPS作为传输层。如果您的需求超出了简单的用户名/密码,则WS-Security会很好,但各平台之间的支持会有很大差异。每个体面的SOAP实现都支持HTTP身份验证。
我过去处理这个问题的方法是使用标准的WS-*功能。
我们不使用身份验证功能,而是设置消息头完整性功能。这需要对话的两端都有公钥/私钥对,并检测标题中用户名字段的任何篡改。因此,您可以确信发送消息和设置用户ID的人拥有私钥的访问权限。
如果密钥得到适当管理,这提供了合理的完整性级别。