我在一个新网站上工作,想要一些关于 OAuth、OpenID 和标准网站拥有的用户名/密码的建议/反馈。
8 回答
您可能想阅读Malcom Tredinnick 的这篇文章,它解释了 openid 和 oauth 是什么以及做什么。它们服务于不同的目的。
总之,openid 将用于唯一标识用户 - 这是一种身份解决方案。oAuth 将通过允许用户授予您的站点对外部服务(例如他们的 flickr 帐户)的临时访问权限来提供一种与您站点的用户可以访问的数据进行交互的方法——它是一种授权工具。
当然,仅提供标准的特定于站点的帐户始终是一种选择,但恕我直言,支持 openid 对您的用户和网络来说更好。许多实现 openid 的网站允许用户使用 openid(如果有),但也允许用户登录并创建没有 openid 的帐户。因此,它不一定是非此即彼的命题。你可以两者都做!
请记住,即使您的网站不需要访问您用户在其他网站上的私人数据,如果您的网站有用户可能希望通过 API 或其他网站访问的数据,OAuth 仍可能适用。使用 OAuth,任一端或两者都可能适用于您的站点。
我对 OAuth 的印象是,它更多的是允许对 API 进行安全、经过身份验证的访问,而不是一般用户访问。
就个人而言,我希望看到更多网站支持 OpenID。
我赞成支持使用 OpenID、Facebook 和任何其他身份验证器集成用户授权。给用户一个选择。
还给他们不使用它们的选项。特别是在面向成人的网站中,您的用户可能会选择不使用不像简单注册您的网站那样匿名的东西。只需在存储密码时使用最佳实践。
JanRain 让您几乎接受一切。鉴于大玩家总是想成为提供者而不是消费者,这可能是唯一现实的“通用”选择。
您可以将所有这些结合起来并充分利用它,但这取决于您的设计选择。
例如,如果您使用 Java,您可以配置 Acegi(Spring Security) 以允许 openID 以及您的正常身份验证机制。
openID 具有 OAuth 扩展
OAuth 具有 openID 扩展
由你决定...
这是非常清晰的解释。直接来自 OAuth 文档。
截至 2011 年 11 月,开发人员预览版中有一个名为OpenID Connect的新标准。它建立在 OAuth 2.0 之上,据我所知,它标准化了 Facebook 做事的方式,它也是建立在 OAuth 2.0 之上的。它看起来很有希望,因为在 Facebook 身份验证协议方面有很多经验,它可能是许多 Web 开发人员正在寻找的解决方案。虽然我还没有深入研究它,所以我可能会误解它,但这是我在阅读这篇关于它的博客文章后理解它的方式。