安全 Oauth 2.0 101

Oauth 2.0 101

目录:

Anonim

许多豪华车都配有代客钥匙。 这是您为停车服务员提供的特殊钥匙,与您的常规钥匙不同,它只能使汽车行驶一小段距离,同时又无法进入后备箱和车载手机。 不管代客钥匙施加什么限制,这个想法都非常聪明。 您可以使用特殊钥匙给某人有限的访问权,而使用另一把钥匙来解锁其他所有东西。 -OAuth 1.0官方指南


这就是基于社区的规范准则在2007年解释OAuth的方式。尽管OAuth 2.0是一个全新的协议,但仍适用相同的描述-OAuth仍然是用户向其授予第三方访问权限(和受限访问权限)的一种方式资源而不共享密码。


如果您经常上网,则可能是您遇到了使用OAuth的网站。 毕竟,世界上最大的网站,例如Facebook,Google,MySpace,Twitter,Photobcuket,Yahoo,Evernote和Vimeo,都使用此身份验证标准。 请继续阅读以了解有关此标准的更多信息,以及为何仍在相对实验的基础上使用下一代OAuth 2.0。

什么是OAuth 2.0?

首先,您需要了解OAuth作为协议的作用:它允许两个Web或桌面应用程序之间的应用程序编程接口授权。 结果,网站能够与其他网站和服务共享受保护的资源。


例如,如果您在iPad上与朋友一起玩“争夺”,则可以输入Facebook凭据,从而允许游戏浏览您的朋友列表,查看其中的哪些人在玩游戏-并邀请其他人加入。 或者,您可以根据谁在Twitter上关注您,与Google+上的朋友联系。 这些类型的应用程序对用户来说很方便,但是它们涉及给一个站点或程序访问另一站点上有关您的信息的权限。


OAuth 2.0的工作方式与OAuth的第一个版本非常相似,但是它完全是一个全新的标准。 这意味着它与OAuth 1.0向后不兼容。 2.0版清除了原始OAuth的许多问题并进行了改进。


在基本保留第一个版本的体系结构的同时,2.0在以下方面进行了改进:

  • 身份验证和签名。 OAuth 2.0使客户端的某些人更容易实现该协议。
  • 用户体验和发行令牌的替代方法
  • 性能,尤其是在较大的网站和服务中
曾经是OAuth工作组成员的Eran Hammer提供了有关OAuth 2.0新增功能的更全面的解释。 您可以在这里访问它。 但是请注意,Hammer于2012年7月离开工作组,理由是实施该标准时存在安全方面的问题。 结果,尽管OAuth原定于2010年底完成,但它仍是拟议标准(在撰写本文时),尽管它是Facebook Graph API的一部分。 Google和Microsoft也在他们的API中试验OAuth 2.0支持。

使用OAuth 2.0的好处

使用OAuth的最好理由之一是,它使共享变得非常容易。 我们已经习惯了将照片上传到Instagram,然后将其自动发布到Twitter和Facebook。 实际上,正是这种易用性和交叉性继续使社交媒体如此吸引人。


但这还不是全部。 对于最终用户,OAuth意味着您不必创建其他配置文件。 例如,如果您想对文章发表评论,则可以使用Facebook或Twitter凭据来进行评论,而不必在给定的网站上注册帐户。 这对于您通常不活跃或您可能不信任的站点非常有用。 它还可以通过确保用户在Facebook上具有身份来使站点受益,从而减少垃圾评论的可能性。


OAuth还意味着需要记住的密码更少。 最好的做法是为不同的网站服务使用不同的密码。 因此,您无需记住其他密码,只需使用Facebook密码即可访问该服务。 ,顺便说一句,看不到您的密码。


您还可以限制通过OAuth访问哪些资源。 例如,在Facebook上玩游戏时,您可以指定是否要代表您将游戏发布在墙上。


对于开发人员,OAuth 2.0提供了已经开发的代码,用于身份验证,社交互动显示和用户个人资料显示。 这意味着更少的错误可供开发人员使用,而风险也较低,因为该API已经过调试,测试和验证。 最后,您还可以受益于更少的数据存储在自己的服务器上。

OAuth 2.0如何成为

很明显,OAuth是对安全计算和不同Web服务易用性的呼应。 另一方面,OAuth 2.0源自降低OAuth复杂性的需求。 但是,两者的全部想法实际上都来自OpenID。


OpenID是一项服务,允许用户使用来自另一个网站的登录凭据登录各种服务。 但是OpenID非常有限,所以一群为自己的站点使用不同授权协议的人们聚集在一起。 最早的OAuth实施是在2007年完成的,而第一次修订是在两年后。


OAuth 2.0于2010年问世。其目的是关注客户端开发人员的简便性,使其更易于扩展,同时还改善了用户体验。

面临挑战?

尽管Google,Klout和其他知名企业都在实现OAuth 2.0,但在该协议的推动下仍然可能会遇到困难。 OAuth 2.0社区内部存在一些批评,包括对该协议的安全性的担忧(许多人认为它不如OAuth 1.0安全)。


Hammer认为,如果由精通Web安全性的合格程序员使用,则OAuth 2.0可以工作。 不幸的是,只有一小部分开发商符合该要求。


此外,OAuth 2.0代码不可重用。 例如,Facebook使用的OAuth 2.0协议不会被其他站点轻易使用。 而且,新协议实际上比原始协议复杂得多。


但是对许多人来说,真正的推动力是OAuth 2.0似乎没有提供任何真正的优势或超过1.0的改进。 Hammer写道,如果您成功实现1.0,则没有理由升级到2.0。


但是,OAuth 2.0仍然非常活跃。 如果它解决了提出的批评和问题,它仍然可以找到一个非常强大的协议。 但是,在撰写本文时,1.0版仍被视为OAuth的官方,稳定和经过测试的版本。 但是,对于打算与在线世界中的知名人士合作的开发人员而言,在不久的将来,安全地实施此协议可能成为一项关键技能。

Oauth 2.0 101