【问题标题】:Web Services authentication - best practices?Web 服务身份验证 - 最佳实践?
【发布时间】:2010-09-14 19:28:45
【问题描述】:

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

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

【问题讨论】:

    标签: web-services authentication soap


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 为什么不依赖现有的HTTP身份验证,只有在你不能使用https的情况下才这样?
      • @Xepoch 正在谈论基本身份验证,其中用户名和密码作为肥皂标题发送?
      • @David 请告诉我如何实现“WS-Security 的基于哈希的 UsernameToken 部分。”。你能给我任何链接,我可以从中读取代码并下载代码以在我的电脑上运行。谢谢
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2012-08-26
        • 1970-01-01
        • 2017-03-07
        • 2010-09-22
        • 2014-01-23
        • 2013-01-17
        • 2014-06-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多