我将为一个新的公共网站开发REST-ful Web服务.Web服务背后的想法是让第三方为业务逻辑开发功能齐全的UI.
出于安全原因,我希望避免用户将我们的服务密码提供给第三方应用程序.(也许这不应该是一个大问题?)相反,我希望在我们的网站上实现某种登录系统,为第三方应用程序提供身份验证令牌,但保持实际密码不在他们手中.
这让我觉得OpenID可能是一个潜在的解决方案.在我看来,它应该工作:实际的密码由OpenID提供商处理,因此它不在第三方应用程序.我认为问题可能在于各种各样的障碍,但这应该是可以控制的.
但是,有一个令人惊讶的缺乏Googleable信息,所以我想SO的意见.有没有人之前实现过类似的系统?它甚至可能吗?这值得吗?
OpenID身份验证本质上是基于浏览器的.如果我想允许OpenID用户对API进行身份验证以便在备用客户端中使用,那么是否有可接受的最佳实践?
因此,如果用户尝试使用他们的OpenID登录到iPhone应用程序,那么它将如何工作?我唯一可以考虑为它们生成某种类型的API令牌,并让用户手动在某处输入它.这种方法不方便用户使用.
这就像Basecamp这样的网站的工作方式,但它对我来说仍然很笨拙.