Web服务身份验证-最佳做法?
时间:2020-03-06 15:01:39 来源:igfitidea点击:
我们在生产中使用的SOAP Web服务依赖于SOAP Header(包含普通客户端凭据)进行身份验证。 WS与Web应用程序或者桌面应用程序一起在具有.NET / Java / PHP / Python / C ++客户端的异构环境中使用。
我们正在考虑针对那些WS使用v2,我想知道什么被视为WS SOAP认证的最佳实践? (合理安全,但易于在各种平台上使用)。
解决方案
在各种平台上处理它的最简单方法是对传输层使用HTTP基本身份验证和HTTPS。如果需求不只是简单的用户名/密码,但是WS-Security会很好,但是不同平台之间的支持会有所不同。每个不错的SOAP实现都支持HTTP身份验证。
如果我们必须自己全部滚动并且不能使用HTTPS,建议我们使用WS-Security的基于哈希的UsernameToken部分。只要库具有哈希函数,它就非常安全并且易于实现。
如果我们正在使用Web服务,那么我将不依赖HTTP进行身份验证。
整个WS-Security太大了。
我过去解决这个问题的方法是使用标准的WS- *功能。
代替使用身份验证功能,我们将消息头完整性功能设置为打开。这要求对话框的两侧都可以访问公共/专用密钥对,并检测标题中用户名字段的任何篡改。因此,我们可以确定发送消息并设置用户ID的人都可以访问私钥。
如果密钥得到正确管理,这将提供合理的完整性级别。