2010-01-20 72 views
4

我认为使用OAuth进行单点登录(SSO)和RESTful服务。乍看之下,使用OAuth作为事实上的标准看起来很自然。但我必须承认,我不明白如何将其用于SSO。在学习OAuth期间,我发现越来越多的Auth批评 - 太多,我倾向于认为OAuth失败了。OAuth失败了吗?

OAuth is hard to implement.

Usability is poor.

Why Facebook doesn't implement OAuth today:

  • “OAuth是更复杂,比我们自己的本地认证机制不太高性能的”
  • “的OAuth WRAP看起来将解决大部分或全部这些问题的“
  • 因为tw Ø许多要求和长期的URI
  • “库质量总体是相当差”

Possibly WRAP, powered by Microsoft, Yahoo and Google, is going to replace OAuth.

What's going on with OAuth (and WRAP)?

所以一直未能OAuth的? SSO有哪些替代选择 - 最好是那些被广泛接受或者被广泛使用的观点?你喜欢WRAP

+2

我们在我的项目中使用了oauth,并确定它需要一些时间和精力来启动和运行(但并不像我们预期的那么多)。是的,对于用户必须登录到另一个站点可能有点烦人。但是现在,一旦我们运行起来,它真的很甜蜜。访问令牌在很长一段时间内都是有效的,它非常流畅和美观,您无需登录即可使用。我不认为它失败了。这只是被人误解。 – 2010-01-21 18:29:41

回答

8

OAuth不是SSO解决方案,它是通常用于授权API授权的协议。 3支持的OAuth允许请求访问受保护资源的客户端将授权委托给托管该资源的服务器。基本上,用户不必将他们的凭证提供给第三方(客户端),而仅仅是托管受保护资源的服务器。如果您希望实施单点登录,OpenID可能是更合适的解决方案。您还可以使用OpenID OAuth扩展,这将允许您通过OAuth将认证与授权相结合。

工作目前正在OAuth 2.0上完成。 WRAP被开发作为一种解决方案来解决原始OAuth 1.0a规范未涵盖的一些用例。 WRAP不会取代OAuth,相反,来自WRAP的想法将在适当的情况下进入OAuth 2.0。许多的OAuth的原作者,以及WRAP的作者之一写了关于这个在这里:

What's going on with OAuth?

所以,不,OAuth的没有失败的,其实它是享有相当广泛采纳。 OAuth 1.0将继续由大量提供商实施,并且最终还将提供OAuth 2.0。 WRAP适用于那些想要利用其现在使用的用例的人。

关于作为客户端实现OAuth的难度,为什么不尝试一下呢?可用的库具有不同的质量,但如果使用体面的库,您通常可以在一天内实施OAuth客户端。