Web服务身份验证 - 最佳实践?

时间:2008-10-02 13:52:56

标签: web-services authentication soap

我们生产的SOAP Web服务依赖于SOAP Headers(包含普通客户端凭据)进行身份验证。 WS在.NET / Java / PHP / Python / C ++客户端的Web应用程序或桌面应用程序的异构环境中使用。

我们正在考虑使用这些WS的v2,我想知道什么被认为是WS SOAP身份验证的最佳实践? (相当安全,但在各种平台上都易于处理)。

3 个答案:

答案 0 :(得分:15)

在各种平台上处理它的最简单方法是对传输层使用HTTP基本身份验证和HTTPS。如果您的需求超出简单的用户名/密码,WS-Security会很好,但平台之间的支持会有很大差异。每个体面的SOAP实现都支持HTTP身份验证。

答案 1 :(得分:4)

如果您必须自己完成并且不能使用HTTPS,我建议使用基于哈希的WS-Security的UsernameToken部分。只要您的库具有散列函数,它就非常安全并且相当容易实现。

如果您正在进行Web服务,我不会依赖HTTP进行身份验证。

WS-Security作为一个整体太大了。

答案 2 :(得分:2)

我过去解决这个问题的方法是使用标准的WS- *功能。

我们不使用身份验证功能,而是设置邮件头完整性功能。这要求对话框的两端都可以访问公钥/私钥对,并检测标头中用户名字段的任何篡改。因此,您可以确定发送邮件和设置用户ID的任何人都可以访问私钥。

如果正确管理密钥,则可提供合理的完整性级别。