为什么Google原生oauth2流需要客户端密钥?

时间:2011-09-01 18:09:38

标签: android ios oauth google-api

根据facebook oauth2 docs,客户端流程不需要客户端秘密参数。客户端流程可以在本机和移动Web应用程序上使用。

然而,google的原生oauth2流程需要客户端密封http://code.google.com/apis/accounts/docs/OAuth2.html#IA

在这种情况下,黑客可以使用逆向工程工具窃取客户端密钥。

有人可以澄清为什么这样做了吗?

1 个答案:

答案 0 :(得分:11)

根据Google员工的帖子,主要原因是他们对服务器端应用和本机应用使用相同的库。听起来他们并不认为client_secret在本机应用程序的上下文中是敏感的,但他们计划最终将其逐步​​用于已安装的应用程序流程。

来自https://groups.google.com/group/oauth2-dev/browse_thread/thread/1e714924ebcc7e60/edfaaad5830ff2e8

  

我们不希望这些秘密保密 - 到目前为止我们主要包括它们所以今天使用图书馆很方便,并期望在将来的某个时候停止使用它们。

虽然这可能听起来不错,但请记住,OAuth从未打算阻止恶意用户在您的移动/桌面应用程序环境中伪造请求。

如果你担心暴露client_secret,还有这里描述的客户端流程:http://code.google.com/apis/accounts/docs/OAuth2.html#CS据我所知,客户端流程不需要client_secret,并且可以正常工作桌面或移动应用程序。

-Chris