OAuth 2.0 101源代码

2022-11-30 0 1,095

OAuth 2.0 101源代码

许多豪华汽车都配有代客钥匙。这是您交给停车服务员的特殊钥匙,与您的普通钥匙不同,它只能让汽车行驶一小段距离,同时阻止进入后备箱和车载手机。不管代客钥匙施加的限制如何,这个想法都非常聪明。你用一把特殊的钥匙给某人有限的进入你汽车的权限,同时使用另一把钥匙来解锁其他一切。 – 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 上与朋友一起玩 Scramble,您可以输入您的 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 的一部分。谷歌和微软也在他们的 API 中试验 OAuth 2.0 支持。
使用 OAuth 2.0 的好处
使用 OAuth 的最佳理由之一是它使共享变得更加容易。我们已经习惯于将照片上传到 Instagram 并让它们自动发布到 Twitter 和 Facebook。事实上,正是这种易用性和交叉性让社交媒体继续如此具有吸引力。

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

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

您还可以限制通过 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源代码 https://www.7claw.com/48958.html

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务