OAuth(开放授权)到底是什么?
我从中收集了一些信息
但是我想学习和了解更多。我正在寻找有关生命周期的信息。为什么大多数社交网络都依赖此开放协议?
各种技术(例如ASP.NET)在不久的将来会成为事实吗?
OAuth(开放授权)到底是什么?
我从中收集了一些信息
但是我想学习和了解更多。我正在寻找有关生命周期的信息。为什么大多数社交网络都依赖此开放协议?
各种技术(例如ASP.NET)在不久的将来会成为事实吗?
Answers:
OAuth(开放授权)到底是什么?
OAuth允许通知资源提供者(例如Facebook)资源所有者(例如您)向第三方(例如Facebook应用程序)授予对其信息(例如您的朋友列表)的访问权限。
如果您读起来很清楚,我会理解您的困惑。因此,让我们举一个具体的例子:加入另一个社交网络!
假设您已有一个GMail帐户。您决定加入LinkedIn。手动添加您所有的很多朋友很烦人且容易出错。您可能会中途受够了,或者在他们的电子邮件地址中输入错别字以进行邀请。因此,您可能很想不要创建一个帐户。
面对这种情况,LinkedIn拥有一个Good Idea™来编写一个程序,该程序可以自动添加您的朋友列表,因为计算机在执行繁琐且易于出错的任务时效率更高,效率也更高。由于加入了网络现在这么容易,也没有办法,你会拒绝这样的提议,现在你会吗?
如果没有用于交换此联系人列表的API,则您必须为LinkedIn提供用户名和密码到您的GMail帐户,从而使他们拥有太多的权力。
这就是OAuth的来源。如果您的GMail支持OAuth协议,那么LinkedIn可以要求您授权他们访问您的GMail联系人列表。
OAuth允许:
它会在不久的将来成为事实上的(标准吗?)?
好吧,尽管OAuth是向前迈出的重要一步,但如果人们使用不正确,OAuth就无法解决问题。例如,如果资源提供者一次只给您所有资源一个单一的读写访问级别,并且不提供管理访问的机制,那么就没有指向它的意义。换句话说,OAuth是一个提供授权功能而不仅仅是身份验证的框架。
实际上,它非常适合社交网络模型。对于想要允许第三方“插件”的社交网络而言,它尤其受欢迎。在该区域中,对资源的访问本质上是必需的,并且本质上也不可靠(即,您对这些应用程序的质量控制很少或没有质量控制)。
我还没有在野外看到这么多其他用途。我的意思是,我不知道网上金融咨询公司,将自动进入你的银行纪录,尽管它可能在技术上可以使用这种方式。
什么是oAuth?
OAuth只是一个安全的授权协议,它处理第三方应用程序的授权以访问用户数据而不暴露其密码。例如。(在许多网站上使用fb,gPlus,twitter登录。)都可以在此协议下工作。
参与方
当您了解参与方时,该协议将变得更加容易。基本上涉及三方:oAuth提供商,oAuth客户和所有者。
这个怎么运作?
我设想了一个场景,其中网站(stackoverflow)需要添加具有Facebook功能的登录名。因此,facebook是oAuth Provider,而stackoverflow是oAuth Client。
此步骤由应用程序的开发人员完成。在一开始,facebook(oAuth Provider)不了解stackoverflow(oAuth Client),因为它们之间没有链接。因此,第一步就是向Facebook 开发者网站注册stackoverflow 。这是手动完成的,开发人员需要将应用程序的信息提供给Facebook,例如应用程序的名称,网站,徽标,重定向网址(重要的网址)。然后stackoverflow成功注册,并从facebook获得了客户端ID,客户端密码等,并使用OAUTH启动并运行。
2. 现在,当stackoverflow的用户单击fb按钮登录时。Stackoverflow请求带ClientId(fb使用它来识别客户端)的facebook和redirectUrl(成功后fb将返回此url)。因此,用户被重定向到facebook登录页面。这是用户(所有者)不向堆栈溢出提供其Facebook凭证的最佳部分。
有关更多:
简而言之,OAuth是一种使应用程序无需直接将您的用户登录信息获取到某些网站即可获得您的信息凭证的方法。例如,如果您在自己的网站上编写了一个应用程序,并希望该应用程序使用用户的Facebook帐户中的数据,则可以使用OAuth通过回调网址获取令牌,然后使用该令牌调用facebook API以获取其使用数据,直到令牌过期。网站之所以依赖它,是因为它使程序员能够访问其数据,而用户不必直接披露其信息并在线上散布其凭据,但仍可以为数据提供一定程度的保护。它会成为事实上的授权方法吗?也许,最近它在Twitter,Facebook,
Oauth无疑正在获得发展,并且在企业API中也很受欢迎。在应用程序和数据驱动的世界中,企业越来越多地通过Google,Facebook和Twitter来向外界公开API。随着这一发展,形成了三方认证三角
1)API提供商-任何通过API公开其资产的企业,例如Amazon,Target等。2)开发人员-通过此API构建移动/其他应用程序的企业3)最终用户-由-提供的服务的最终用户-说亚马逊的注册/来宾用户
现在,这发展出一种与安全性相关的情况-(我列出了其中的一些复杂性)1)作为最终用户,您希望允许开发人员代表您访问API。2)API提供者必须对开发者和最终用户进行身份验证3)最终用户应能够授予和撤消他们所给予同意的权限4)开发者可以在不同程度上信任API提供者授予她的权限级别不同
Oauth是一个授权框架,它试图以一种标准的方式解决上述问题。随着API和应用程序的兴起,这个问题将变得越来越重要,任何试图解决它的标准-无论是原始的还是其他的-作为API提供者/开发人员甚至最终用户都将受到关注!
OAuth(O pen Auth orization)是用于访问授予/委托协议的开放标准。它用作Internet用户授予网站或应用程序访问其在其他网站上的信息的途径,而无需给他们提供密码。它不处理身份验证。
要么
OAuth 2.0是一种协议,允许用户在不公开其凭据的情况下向一个站点授予对另一个站点的资源的有限访问权限。
类比1:当今许多豪华车都配有代客钥匙。这是您为停车服务员提供的特殊钥匙,与常规钥匙不同,它不允许汽车行驶超过一英里或两英里。一些代客钥匙不会打开后备箱,而其他代客钥匙会阻止访问您的车载手机通讯录。不管代客钥匙施加什么限制,这个想法都非常聪明。您可以使用特殊钥匙为某人提供有限的访问权限,同时使用常规钥匙来解锁所有东西。来自auth0的src
类比2:假设我们要填写一个银行帐户申请表。Oauth在这里的工作方式是,银行可以使用Adhaar或护照填写表格,而不是由申请人填写表格。
这里涉及以下三个实体:
OAuth就是委派授权(选择可以为您执行授权的人)。请注意,身份验证和授权是不同的东西。OAuth是授权(访问控制),如果您还想实现身份验证(ID验证),则可以在OAuth之上使用OpenID协议。
如今,像Facebook,Google,Github等所有大公司都在使用这种身份验证/授权。例如,我刚刚使用我的Google帐户登录了此网站,这意味着Stackoverflow不知道我的密码,它从Google那里获得了允许(我的密码(显然已经暗藏)了)的津贴。这带来了很多好处,其中之一是;在不久的将来,您不必在每个网站上都建立多个帐户。一个网站(您最信任)可以用于登录所有其他网站。因此,您只需要记住一个密码即可。
OAuth
当我们使用Facebook / Google按钮注册SO帐户时发生。
来源:OAuth1服务提供商
OAuth是一种开放的授权标准,通常用作Internet用户使用其Microsoft,Google,Facebook或Twitter帐户登录第三方网站而无需暴露密码的一种方式。
OAuth是资源所有者(facebook,google,tweeter,microsoft live等)使用的协议,用于提供所需的信息或向第三方系统(例如您的网站)提供成功写入的权限。很有可能没有OAuth协议,凭据应可用于第三方系统,这将是这些系统之间不适当的通信方式。