web-services - 使用 OpenID 的 Web 服务身份验证

标签 web-services openid

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

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

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

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

最佳答案

我完全同意您想要的是 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

祝你好运,编码愉快!

关于web-services - 使用 OpenID 的 Web 服务身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/386973/

相关文章:

java - 联合身份验证 - openid 注销

c# - 自定义 oAuth 服务器实现及其优势

ruby-on-rails - 在 Ruby on Rails 中登录/注册?

web-services - WS-Addressing 有什么用?

java - 无法解析 JSON 中的古吉拉特语文本

java - 是否可以在没有像 Axis/CXF 这样的 Web 服务框架的情况下开发 Web 服务应用程序?

c# - 关于登录凭据

openid - OpenID 是一个有缺陷的概念吗?

c# - 在循环中对方法的多个异步方法调用

java - 无法从 Groovy 调用 Web 服务