OAuth - 在您的应用程序中嵌入客户端密钥?

use*_*701 11 security oauth twitter-oauth

我在看这里推荐的oauth实现:

https://dev.twitter.com/docs/auth/oauth
Run Code Online (Sandbox Code Playgroud)

和路标等oauth库:

http://code.google.com/p/oauth-signpost/
Run Code Online (Sandbox Code Playgroud)

他们都谈到在oauth流程中使用客户端密钥,这意味着对于我的客户端应用程序,我需要将秘密存储在应用程序本身中.这可能有风险,因为有人可以从我的应用程序中获取秘密.在我的应用程序中存储秘密有什么方法吗?我误解了oauth流吗?

谢谢

Era*_*mer 3

没有办法在不公开客户端凭据的情况下将客户端凭据存储在本机或 JavaScript 应用程序中。此外,将这些凭据放在代理服务器上并让客户端与服务器通信(以便凭据不被暴露)也不能真正解决任何问题。现在您遇到了向代理验证客户端身份的问题。

正确的解决方案是对 OAuth 服务提供的本机应用程序提供特殊支持。OAuth 2.0 使用预先注册的重定向 URI 和其他技术来为此类客户端完成合理的客户端身份验证。

  • 本机应用程序不应使用客户端密钥,因为它没有真正的价值并且会产生虚假的安全感。 (3认同)
  • 您能详细说明一下吗?我快速浏览了草稿 - http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-9 - 这是否意味着本机应用程序在以下情况下不使用“客户端密钥”使用 OAuth?您能描述一下所需的流程吗? (2认同)