OAuth2中客户端密钥的目的是什么?

Rob*_*bin 22 security authentication api oauth oauth-2.0

我有一个提供API的应用程序.此应用是OAuth2提供商.

我想使用仅客户端的应用程序访问此API(读取和写入).我正在使用JSO简化这一过程.

它很棒.

问题是,我不必在任何地方输入我的客户机密(我在我的应用程序中注册的应用程序).而且我理解为什么,然后任何人都可以使用它.

所以,如果我可以在没有客户机密的情况下访问我的api,你能解释一下它的用途是什么吗?

Ser*_*nko 12

此讨论提供了一个很好的解释,为什么客户端密钥对于服务器端应用程序比客户端应用程序更重要.摘录:

Web应用程序[服务器端应用程序]使用客户端机密,因为它们代表了巨大的攻击媒介.让我们说有人中毒一个DNS条目并设置一个流氓应用程序"相似",这个并置数据可能几个月没有被注意到,这个中介吸收了大量的数据.客户机密被认为可以缓解这种攻击媒介.对于单用户客户端,妥协必须同时使用一个设备,相比之下这是非常低效的.


Mar*_* S. 10

客户端密钥在OAuth 1.0中用于签署请求,因此它是必需的.某些OAuth2服务器(例如Google Web Server API)要求发送客户端密钥以接收访问令牌(来自请求令牌或刷新令牌).

OAuth 2.0显着降低了客户端密钥的作用,但它仍然传递给使用它的服务器.

  • 好吧,那么不传递它不是安全问题吗? (2认同)