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

我收集了一些信息

  • OAuth
  • Twitter Tutorial: What is OAuth And What It Means To You
  • What is OAuth

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

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

    最佳答案



    OAuth的允许通知资源提供(比如Facebook)的资源所有者(如你)权限授予一个第三方(如Facebook应用程序)访问他们的信息(例如你的 friend 列表)。

    如果你把它说得很清楚,我就会理解你的困惑。让我们举一个具体的例子:加入另一个社交网络!

    假设您有一个现有的 GMail 帐户。您决定加入领英。手动添加您所有的许多 friend 既烦人又容易出错。您可能会中途厌烦或在他们的电子邮件地址中插入拼写错误以获取邀请。因此,您可能不想创建帐户。

    面对这种情况,LinkedIn 有一个好主意(TM) 来编写一个程序,自动添加您的 friend 列表,因为计算机在处理烦人且容易出错的任务时效率更高。既然现在加入网络这么容易,你不可能拒绝这样的提议,现在是吗?

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

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

    OAuth 允许:

  • 不同的访问级别:只读VS读写。这允许您授予对用户列表的访问权限或双向访问权限,以自动将您的新 LinkedIn 好友与您的 GMail 联系人同步。
  • 访问粒度:您可以决定仅授予对您的联系信息(用户名、电子邮件、出生日期等)或您的整个 friend 列表、日历等的访问权限。
  • 它允许您从资源提供者的应用程序管理访问。如果第三方应用程序不提供取消访问的机制,您将被他们访问您的信息所困扰。使用 OAuth,可以随时撤销访问权限。



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

    在实践中,它非常适合社交网络模型。对于那些想要允许第三方“插件”的社交网络来说,它尤其受欢迎。在这个领域,访问资源本质上是必要的,而且本质上也是不可靠的(即您对这些应用程序几乎没有质量控制)。

    我还没有在野外看到这么多其他用途。我的意思是,我不知道有一家在线财务咨询公司会自动访问您的银行记录,尽管技术上可以这样使用。

    关于oauth - OAuth(开放授权)究竟是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4201431/

    10-15 10:05