21

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

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

4

3 回答 3

15

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

于 2008-10-09T23:28:27.903 回答
4

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

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

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

于 2008-11-15T22:07:00.237 回答
2

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

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

如果密钥管理得当,这将提供合理的完整性级别。

于 2010-01-04T08:40:22.740 回答