【问题标题】:Cross-Platform Web Services Authentication跨平台 Web 服务身份验证
【发布时间】:2009-07-14 22:50:26
【问题描述】:

我正在从事一个项目,我们有几个使用不同编程语言(如 Java、Perl 和 Python)开发的 SOAP Web 服务。 我需要对将使用每个 Web 服务的用户进行身份验证,拒绝我们不想要的用户。

我已经看过 OAuth,但在这方面我没有找到任何帮助我的文档。使用 OAuth,我必须对每个 Web 服务(使用不同的编程语言)进行编程才能使用它。

我想知道满足此要求的最佳方法是什么。

有什么方法可以使用 HTTP Digest Authentication 来制作我想要的东西?哪一个是更好的解决方案? OAuth 还是 WS-Security?

提前致谢, 乌克兰

【问题讨论】:

    标签: web-services security authentication


    【解决方案1】:

    您需要进行大量研究。

    您需要了解联合安全性:

    联合安全的定义

    联合安全允许清洁 服务之间的分离 客户端正在访问和相关联的 认证和授权 程序。联邦安全也 实现跨多个协作 系统、网络和组织 在不同的信任领域。

    WCF 为构建和 部署分布式系统 使用联合安全性。

    有关 WCF 的信息,请参阅Federation and Issued Tokens。您可能还对 MSDN 杂志文章“Geneva Framework, A Better Approach For Building Claims-Based WCF Services”感兴趣。

    仅供参考,我用来查找这些的搜索是http://social.msdn.microsoft.com/Search/en-US/?Refinement=117&Query=federated+security+in+wcf

    【讨论】:

    • 是的,我知道 WCF,但这是针对 .NET 的,我的首要任务是开源语言,我只会在本地使用 C# 来替代 Web 服务。我正在寻找适合所有语言的解决方案。
    • 对不起,我很困惑。您说“使用不同的编程语言(如 C#)开发的 SOAP Web 服务”。 WCF 用于 .NET。此外,如果您阅读了有关 Federated Security 的内容,您就会明白我为什么推荐它 - 这正是您想要将所有平台捆绑在一起的原因。
    【解决方案2】:

    如果您正在寻找互操作性,您应该从 OASIS Web Service Security 标准开始。可以多发几个links on Wikipedia

    您可能需要做一些工作才能让所有实现很好地协同工作......您的 Java 和 C# 代码应该很容易开始工作,但据我所知,没有全面的 Python 解决方案。

    迈克尔

    【讨论】:

    • 我试图避免在不同语言上实施相同的解决方案,我知道对于 OAuth 和 WS-Security 我需要这样做。有什么方法可以使用 HTTP Digest Authentication 制作我想要的东西?哪一个是更好的解决方案? OAuth 还是 WS-Security?
    • 我不了解这些其他平台,但您不会编写任何代码来使用 WCF 实现这些平台。这些功能是内置的,只需要配置即可。
    • WCF 可以支持它...但我无法控制我的合作伙伴正在使用的技术。因此,我需要保护使用 C# 以外的其他语言制作的 Web 服务。我改变了这个问题,因为 C# 仅用于不构成项目核心的 Web 服务。
    • 如果您认为需要为其他平台自行实施 Federated Security,那么您可能会发现自己错了。工具包可能已经存在。顺便说一句,WS-Security 也是如此。当然,如果您的安全需求不高,那么 SSL 上的用户名/密码安全可能就足够了。
    • 我已经知道在多种语言上创建 WS-Security 的库。而对于 WCF?你能给我一些链接吗?例如,是否可以使用 WCF 在 java 上创建 WS?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 2013-08-06
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 2013-06-22
    相关资源
    最近更新 更多