OAuth究竟是什么(开放授权)?

199 oauth

OAuth究竟是什么(开放授权)?

我收集了一些信息

但我想学习并了解更多.我正在寻找有关生命周期的信息.为什么大多数社交网络都依赖于这种开放协议?

它会在不久的将来成为各种技术(例如ASP.NET)的事实吗?

And*_*ron 322

OAuth究竟是什么(开放授权)?

OAuth允许通知资源提供者(例如Facebook)资源所有者(例如您)授予第三方(例如Facebook应用程序)访问其信息(例如您的朋友列表)的权限.

如果你明白地看到它,我会理解你的困惑.让我们举一个具体的例子:加入另一个社交网络!

假设您有一个现有的GMail帐户.您决定加入LinkedIn.手动添加所有许多朋友都很烦人且容易出错.您可能会在中途受到厌倦或在其电子邮件地址中插入拼写错误以获取邀请.所以你可能最终不想创建一个帐户.

面对这种情况,LinkedIn有Good Idea(TM)编写一个程序,可以自动添加你的朋友列表,因为计算机在厌倦和容易出错的任务上更有效率和效率.由于加入了网络现在这么容易,也没有办法,你会拒绝这样的提议,现在你会吗?

如果没有用于交换此联系人列表的API,您必须向LinkedIn提供您的GMail帐户的用户名和密码,从而为他们提供过多的权力.

这就是OAuth的用武之地.如果您的GMail支持OAuth协议,那么LinkedIn可以要求您授权他们访问您的GMail联系人列表.

OAuth允许:

  1. 不同的访问级别:只读VS读写.这允许您授予对用户列表的访问权限或双向访问权限,以自动将您的新LinkedIn好友与您的GMail联系人同步.
  2. 访问粒度:您可以决定仅授予您访问联系信息(用户名,电子邮件,出生日期等)的权限,也可以访问您的整个朋友列表,日历和不包含的内容.
  3. 它允许您管理资源提供程序的应用程序的访问.如果第三方应用程序没有提供取消访问权限的机制,那么您将无法访问您的信息.使用OAuth,可以随时撤消访问权限.

它会在不久的将来成为事实上的(标准吗?)吗?

好吧,尽管OAuth是向前迈出的重要一步,但如果人们没有正确使用它,它就无法解决问题.例如,如果资源提供程序一次只为您的所有资源提供单个读写访问级别,并且不提供管理访问的机制,那么就没有意义.换句话说,OAuth是一个提供授权功能而不仅仅是身份验证的框架.

在实践中,它非常适合社交网络模型.它特别受那些想要允许第三方"插件"的社交网络的欢迎.在这个领域,对资源的访问本身就是必要的,并且本质上也是不可靠的(即,您对这些应用程序的质量控制很少或没有).

我没有在野外见过这么多其他用途.我的意思是,我不知道网上金融咨询公司,将自动进入你的银行纪录,尽管它可能在技术上可以使用这种方式.

  • 你让它变得容易理解.我可能已将第一行更改为类似的内容."OAuth允许通知资源提供商(例如Gmail)资源所有者(例如您是Gmail用户)授予第三方(例如您的LinkedIn帐户)访问其信息(例如您的联系人列表)的权限." 你写的那个,即提供者和第三方'两者'都是Facebook令人困惑.虽然它引入了一个有趣的场景,即Oauth也可以在公司的不同项目之间内部使用.对?这就是为什么你介绍了一个复杂的介绍? (6认同)

Bal*_*wat 239

什么是oAuth?

OAuth只是一种安全授权协议,用于处理第三方应用程序的授权,以便在不泄露密码的情况下访问用户数据.例如.(在许多网站上用fb,gPlus,twitter登录)都可以在这个协议下工作.

有关各方

当您了解相关方时,协议变得更容易.基本上涉及三方:oAuth提供商,oAuth客户和所有者.

  • oAuth客户端(想要访问您的凭证的应用程序)
  • oAuth提供商(例如,facebook,twitter ......)
  • 所有者(facebook,twitter ..帐号的人)

这个怎么运作?

我认为一个网站(stackoverflow)需要添加登录Facebook功能的场景.因此facebook是oAuth Provider,stackoverflow是oAuth Client.

  1. 此步骤由app的开发人员完成.一开始facebook(oAuth Provider)不知道stackoverflow(oAuth Client),因为它们之间没有链接.所以第一步是向facebook 开发者网站注册stackoverflow .这是手动完成的,开发人员需要将应用程序的信息提供给Facebook,例如应用程序的名称,网站,徽标,重定向URL(重要的一个).然后stackoverflow成功注册,从Facebook获得客户端ID,客户端密码等,并启动并运行OAUTH. 在此输入图像描述

    2. 现在,当stackoverflow的用户单击使用fb按钮登录时.Stackoverflow用ClientId请求facebook(fb用它来识别客户端)和redirectUrl(fb会在成功后返回到这个url).这样用户就会被重定向到facebook登录页面.这是用户(所有者)没有给予stackoverflow的facebook凭证的最佳部分.

在此输入图像描述

在此输入图像描述

  1. 所有者允许Stackoverflow访问信息.然后Facebook 使用步骤2中提供的redirectUrl 重定向回stackoverflow,以及authcode.
  2. 然后Stackoverflow与facebook联系以及获得的authcode以确保一切正常.
  3. 只有这样facebook才会将访问令牌提供给stackoverflow.然后,stackoverflow使用访问令牌来检索所有者的信息,而不使用密码.这是oAuth的全部动机,其中从未暴露于第三方应用程序的实际凭证.

更多:

快速视频

网页链接

  • 是的您可以使用IP地址作为重定向URL:**redirect_uri ='http://127.0.0.1:4200 /'**,OAuth域名应为**127.0.0.1** (2认同)

ame*_*eer 13

简单地说,OAuth是一种应用程序获取信息凭证的方式,而无需直接将您的用户登录信息提供给某个网站.例如,如果您在自己的网站上编写应用程序并希望它使用来自用户的Facebook帐户的数据,您可以使用OAuth通过回调网址获取令牌,然后使用该令牌调用facebook API以获取他们的使用数据直到令牌过期.网站依赖它,因为它允许程序员访问他们的数据而无需用户直接披露他们的信息并在线传播他们的凭据,但仍然为数据提供一定程度的保护.它会成为事实上的授权方法吗?也许,它最近从Twitter,Facebook获得了很多支持,

  • OAuth不是身份验证过程,而是授权过程. (14认同)

ran*_*ess 9

Oauth肯定正在获得动力,并且在企业API中也越来越受欢迎.在应用程序和数据驱动的世界中,企业越来越多地向外界展示API,与谷歌,Facebook,Twitter一致.通过这种开发,形成了3路三角形的认证

1)API提供商 - 任何通过API公开其资产的企业,比如Amazon,Target等2)开发人员 - 通过此API构建移动/其他应用程序的人3)最终用户 - 由 - 提供的服务的最终用户 - 说亚马逊的注册/访客用户

现在这会产生与安全性相关的情况 - (我列出了其中一些复杂性)1)作为最终用户,您希望允许开发人员代表您访问API.2)API提供者必须对开发人员和最终用户进行身份验证3)最终用户应该能够授予和撤销他们已经给予的同意的权限4)开发人员可以与API提供商有不同程度的信任,授予她的权限级别是不同的

Oauth是一个授权框架,试图以标准方式解决上述问题.随着API和应用程序的突出,这个问题将变得越来越相关,任何试图解决它的标准 - 无论是ouath还是任何其他 - 将作为API提供者/开发者甚至最终用户关注的事情!


Pre*_*raj 8

OAuth(O pen Auth orization)是访问授权/结算协议的开放标准.它用作互联网用户授权网站或应用程序访问其他网站上的信息但不向他们提供密码的方式.它不涉及身份验证.

要么

OAuth 2.0是一种协议,允许用户在一个站点上向其他站点授予对其资源的有限访问权限,而无需公开其凭据.

  • 类比1:今天许多豪华车都带有代客钥匙.这是一个特殊的钥匙,你给停车服务员,不像你的常规钥匙,将不允许汽车行驶超过一英里或两英里.有些代客钥匙不会打开行李箱,而其他代客将阻止访问您的机载手机通讯录.无论代客钥匙施加什么限制,这个想法都非常聪明.您可以使用特殊键为某人限制访问您的汽车,同时使用常规密钥解锁所有内容.来自auth0的src

  • 类比2:假设,我们想填写银行账户的申请表.在这里Oauth的工作原理是,银行可以使用Adhaar或护照填写表格,而不是填写表格.

    这里涉及以下三个实体:

    1. 申请人即所有者
    2. 银行账户是OAuth客户,他们需要信息
    3. Adhaar/Passport ID是OAuth提供商


Ozk*_*kan 5

OAuth就是委派授权(选择可以为您做授权的人)。请注意,身份验证和授权是不同的东西。OAuth是授权(访问控制),如果您还想实现身份验证(ID验证),则可以在OAuth之上使用OpenID协议。

如今,诸如Facebook,Google,Github等所有大公司都使用这种身份验证/授权。例如,我刚刚使用我的Google帐户登录了该网站,这意味着Stackoverflow不知道我的密码,它从Google那里获得了允许(我的密码被保存了)的津贴。这带来了很多好处,其中之一是;在不久的将来,您不必在每个网站上都建立多个帐户。一个网站(您最信任)可以用来登录所有其他网站。因此,您只需要记住一个密码即可。