Oauth 2.0需要使用消费者密钥/消费者密钥吗?

12
显然在使用OAuth 1.0时,您需要从API提供者获取消费者密钥和消费者密钥。但是当我尝试使用OAuth 2.0 API(例如Facebook,Google OAuth 2.0等)时,我从未需要获取消费者密钥/消费者密钥(我获取了Facebook的应用程序ID和应用程序密钥,但这些与消费者密钥/消费者密钥不同,我是正确的吗?)。所以我的问题是...是否真的在使用Oauth 2.0时,不需要像Oauth 1.0那样拥有消费者密钥/消费者密钥?此外,Oauth 2.0不需要任何签名方法(如HMAC-SHA1等),是吗?HMAC-SHA1仅适用于Oauth 1.0,对吗?
3个回答

15
1. OAuth 2提供者通常会为您的客户端/应用程序发放标识符和一些密码/秘密,OAuth草案称这些为客户端标识符客户端秘密。它们用于检查调用是否确实由您的应用程序发出。但是,OAuth涵盖了不同的授权授予流程,这些流程更或多或少安全,并且并不都需要某种形式的秘密。谷歌称其为客户端ID客户端秘密,Facebook称其为应用ID应用秘密,但它们都是相同的。
2. 是的,在OAuth 2中,所有加密步骤都已移至服务器端。

5
您所提到的授权授予流程在OAuth 2规范中被称为客户端凭证授权流。它用于进行仅应用程序身份验证,即不涉及任何用户。一个典型的例子是在主页上显示推特动态。

通常,应用程序通过HTTPS将使用者密钥(或应用程序ID)和使用者密码(或应用程序密码)传递给服务器。此请求仅由HTTPS保护,没有额外的加密。服务器返回一个令牌,您可以从那时起使用该令牌来发出对API的请求-假设它不需要用户上下文。
使用者密钥(或应用程序ID)标识您的应用程序,并且可能具有有意义的值。您通常无法再更改这个键了。然而,使用者密码可以在您认为它已经泄漏的情况下重新生成。这就解释了为什么有两个键。
重新生成使用者密码与使令牌无效不同,如果使用者密钥和使用者密码已经泄漏,使令牌无效将无法帮助您。

0

两者是相同的。术语使用可能因应用程序/用户/客户而异,但本质上是相同的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接