使用OpenID进行Web服务身份验证

时间:2008-12-22 18:33:15

标签: web-services openid

我将为新的公共网站开发REST-ful Web服务。 Web服务背后的想法是让第三方为业务逻辑开发功能齐全的UI。

出于安全考虑,我希望避免用户将我们服务的密码提供给第三方应用程序。 (也许这不应该是一个大问题?)相反,我希望在我们的网站上实现某种登录系统,为第三方应用程序提供身份验证令牌,但保留实际密码。

这让我觉得OpenID可能是一个潜在的解决方案。在我看来,它应该工作:实际的密码由OpenID提供商处理,因此它不在第三方应用程序。我认为问题可能在于各种各样的过时,但这应该是可以控制的。

但是,有一个令人惊讶的缺乏Googleable信息,所以我想SO的意见。有没有人之前实现过类似的系统?它甚至可能吗?这值得吗?

3 个答案:

答案 0 :(得分:13)

我完全同意你想要的是OAuth;我说曾经在OAuth和OpenID系统上工作过。我也曾经在你的船上几次,不得不开发一个REST Web服务API。

关于OAuth的一个非常好的想法,以及为什么它是你想要的,请参阅这些附加文章:

必须阅读这些内容,有四个部分全部阅读: http://hueniverse.com/oauth/guide/

RFC,阅读上面的内容,因为它对大多数人来说可能有点令人生畏: http://oauth.net/core/1.0

然后最后可能会有一些代码。我有几个托管的项目正在使用Java / Groovy来执行OAuth。一个是普通的旧OAuth客户端,另一个是与NetFlix进行特定交互的客户端。 http://www.blueleftistconstructor.com/projects/

如果你对REST相对缺乏经验(你还没有建立一个完整的web api),我建议你购买(或者更好地让你的老板去)Richardson&amp ;;的“RESTful Web Services”。红宝石。这是一本O'Reilly的书。我可以说这是他们在过去几年中首次亮相的好书之一。

查看一些基于RESTful OAuth的API也可能有所帮助。 NetFlix API就是一个很好的例子:http://developer.netflix.com/docs

祝你好运,编码愉快!

答案 1 :(得分:2)

到目前为止,我找到了一个有价值的链接:

http://markmail.org/message/utf7js473zqv45hv

这次谈话提到了一个名为“OpenID Exchange”的东西,这个东西就在我的巷子里......但是包含的链接已经被破坏了,谷歌没有太多可靠的信息。

看起来OAuth可能是故障单:http://oauth.net/

答案 2 :(得分:0)

我们一直致力于为SOAP Web服务集成OpenID身份验证的项目。您可以在http://code.google.com/p/ws-sandhana/找到我们的项目。

您可以使用OpenID身份验证为您的Web服务提供Single Sing On,您可以通过定义服务安全策略来强制实施受信任的OpenID提供程序和用户的必需属性。

这是Apache Rampart上的一个开源实现,它是Apache Axis2 Web服务引擎的安全模块。您可以在http://sandhana-project.blogspot.com /找到我们的博客,了解更多信息。

相关问题