对 OAuth 感到困惑
Posted
技术标签:
【中文标题】对 OAuth 感到困惑【英文标题】:Confused about OAuth 【发布时间】:2012-07-22 05:54:10 【问题描述】:叫我新手,叫我笨蛋,给这个话题打分。随心所欲,我只是来问一个问题,并希望从中学到一些东西。
所以我今天一直在为我的网站制作一个 API(很好地尝试),并且我在 Twitter、Foursquare、Tumblr 等最流行的网站 API 上注意到了这个“东西”,称为“OAuth”。根据我今天的研究,我了解到这基本上是一种向消费者提供令牌以访问来自提供者的受限数据的方式,具体取决于用户选择的内容,而无需用户交出密码和用户名。
但是为什么我必须使用 OAuth,为什么我不能向消费者密钥提供一个 API,而他们只是使用它?然后,我将查看用户是否允许访问该应用程序,并且他们必须授予该应用程序访问权限才能从他们的帐户中获取信息,例如照片。
让我感到困惑的是为什么 Tumblr API 会同时使用这两者。阅读博客详细信息时,他们使用简单的 api 密钥,但在博客上发帖需要 OAuth 签名。
【问题讨论】:
【参考方案1】:OAuth 是一种协议,具有一些专家组定义的一组规范,用于定义如何共享数据。 基本上你看到的只是OAuth机制的一部分,里面有很多通信和握手机制来保证用户数据的安全,同时避免未经授权的数据访问。
OAuth 机制在 2 个级别退出
-
三足认证
双腿身份验证
两者都有其积极和消极的一面,并且有一套程序需要注意安全性和数据完整性。
仅允许基于 access_token/consumer 密钥的访问确实是一种非常薄弱的安全机制,并且很容易被任何碰巧访问您的消费者密钥的人入侵,而 OAuth 系统通过共享时间限制的 access_token 来确保。
详情参考本帖oauth-2-0-benefits-and-use-cases-why
【讨论】:
以上是关于对 OAuth 感到困惑的主要内容,如果未能解决你的问题,请参考以下文章