【问题标题】:Why Google native oauth2 flow require client secret?为什么 Google 原生 oauth2 流程需要客户端密码?
【发布时间】:2011-11-08 15:03:53
【问题描述】:

根据 facebook oauth2 文档,客户端流程不需要客户端密码参数。客户端流程可用于本机和移动网络应用程序。

但是 google 的原生 oauth2 流程需要客户端密码 http://code.google.com/apis/accounts/docs/OAuth2.html#IA

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

有人能解释一下为什么会这样吗?

【问题讨论】:

    标签: android ios oauth google-api


    【解决方案1】:

    根据一位 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,并且可以在桌面上正常工作或移动应用。

    -克里斯

    【讨论】:

      猜你喜欢
      • 2019-12-25
      • 1970-01-01
      • 2017-06-15
      • 2019-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      • 2014-09-18
      相关资源
      最近更新 更多