16

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

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

这让我觉得 OpenID 可能是一个潜在的解决方案。在我看来,它应该可以工作:实际密码由 OpenID 提供程序处理,因此它不依赖于 3rd 方应用程序。我认为问题可能在于各种传递,但这应该是可以管理的。

然而,令人惊讶的是,谷歌缺乏这方面的信息,所以我想听听 SO 的意见。以前有人实施过类似的系统吗?甚至可能吗?值得麻烦吗?

4

3 回答 3

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 & Ruby 的“RESTful Web Services”。这是一本 O'Reilly 的书。我可以说这是他们过去几年出道的最好的书之一。

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

祝你好运,编码愉快!

于 2009-01-09T21:17:28.090 回答
2

到目前为止,我发现了 1 个有价值的链接:

http://markmail.org/message/utf7js473zqv45hv

这段对话提到了一个叫做“OpenID Exchange”的东西,它就在我的小巷里……但是包含的链接被破坏了,谷歌上没有太多可靠的信息。

看起来 OAuth 可能是票: http: //oauth.net/

于 2008-12-22T18:41:35.487 回答
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/找到我们的博客以获取更多信息。

于 2011-09-16T04:55:35.250 回答