我将为一个新的公共网站开发REST REST Web服务。 Web服务背后的想法是让第三方为业务逻辑开发功能齐全的UI。
出于安全考虑,我想避免用户不得不向第三方应用程序提供我们的服务密码。 (也许这不应该是一个大问题?)相反,我正在寻找在我们的网站上实现某种登录系统,为第三方应用程序提供了一个验证令牌,但保留了实际的密码。
这使得我认为OpenID可能是一个潜在的解决方案。在我看来,它应该工作:实际的密码由OpenID提供商处理,所以它不在于第三方应用程序。我认为麻烦可能在于各种传播,但这应该是可以管理的。
但是,有一个令人惊讶的缺乏Googleable的信息,所以我想要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),我建议您购买(或更好地让您的老板)“Richful”和“RESTful Web服务”红宝石。这是一本O’Reilly的书。我可以说,这是他们在过去几年登场的最好的一本书。
这可能有助于查看一些基于RESTful OAuth的API。 NetFlix API是一个很好的例子:http://developer.netflix.com/docs
祝你好运快乐编码!