【问题标题】:Does Oauth 2.0 need consumer key/consumer secretOauth 2.0 是否需要消费者密钥/消费者秘密
【发布时间】:2012-07-29 11:52:25
【问题描述】:

显然,在使用 OAuth 1.0 时,您需要从 API 提供者处获取使用者密钥和使用者秘密...

但是当我尝试使用 Facebook、Google Oauth 2.0 等 OAuth 2.0 API 时,我从不需要获取消费者密钥/消费者密钥(我为 Facebook 获取了 App ID 和 App Secret,但它们与消费者密钥不同/消费者的秘密我说对了吗?)

所以我的问题是......当使用 Oauth 2.0 时,您是否不需要像 Oauth 1.0 中那样拥有消费者密钥/消费者秘密

Oauth 2.0 也不需要签名方法(HMAC-SHA1 等),对吗? HMAC-SHA1 仅与 Oauth 1.0 相关,对吗?

【问题讨论】:

    标签: api rest authentication oauth oauth-2.0


    【解决方案1】:

    您所指的授权授予流程在 OAuth 2 规范中称为客户端凭据授予流程。它用于执行仅限应用程序的身份验证。这意味着没有用户参与。一个典型的例子是在主页上显示 twitter 提要。

    通常,应用程序通过 HTTPS 将使用者密钥(或应用程序 ID)和使用者密码(或应用程序密码)传递到服务器。此请求仅受 HTTPS 保护;没有额外的加密。服务器返回一个令牌,您可以从那时起使用该令牌向 API 发出请求 - 因为它不需要用户上下文。

    使用者密钥(或应用 ID)标识您的应用,并且可能具有有意义的值。您通常不会(或不能)再更改此设置。但是,如果您认为消费者机密已被泄露,则可以重新生成消费者机密。这就解释了为什么有两个键。

    重新生成消费者密钥与使令牌无效不同,如果消费者密钥和消费者密钥已被泄露,这将无济于事。

    【讨论】:

      【解决方案2】:

      两者都是一样的。应用程序/用户/客户端使用的术语不同。就是这样。两者都是一样的。

      【讨论】:

        【解决方案3】:
        1. OAuth 2 提供者通常会向您发出客户端/应用程序的标识符和一些秘密/密码,OAuth 草案称这些为client identifier and client secret。这些用于检查您的应用程序是否真的发出了调用。然而,OAuth 涵盖了不同的Authorization Grant flows,它们或多或少是安全的,并不都需要某种秘密。 Google 称它们为 client IDclient secret,Facebook 称它们为 App IDApp Secret,但它们都是一样。
        2. 是的,在 OAuth 2 中,所有加密步骤都已移至服务器端。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-12-05
          • 2013-07-04
          • 2012-03-10
          • 1970-01-01
          • 2016-04-14
          • 2011-09-08
          • 2012-04-28
          • 1970-01-01
          相关资源
          最近更新 更多