【问题标题】:Storing OAuth2 client_id and client_secret securely in a client side app在客户端应用程序中安全地存储 OAuth2 client_id 和 client_secret
【发布时间】:2013-11-02 12:50:16
【问题描述】:
是否有任何巧妙的解决方案可以将client_id 和client_secret 安全地存储在客户端应用程序中?
这可能是一个被反编译的 Android/iOS 应用。或者是纯文本格式的 Chrome 扩展程序。
如果这些被攻击者入侵并冒充您的应用程序,那么利用它的声誉来鼓励用户授权访问,对吗?
很好奇这里有什么解决方案。谢谢!
【问题讨论】:
标签:
security
oauth
oauth-2.0
【解决方案1】:
对于移动应用,不建议使用“授权码授予”方案,因为将 client_secret 存储在移动应用中并不安全。这就是该标准在机密客户和公共客户之间产生差异的原因(参见2.1 部分)。
您应该改用“隐式授权”方案(为 javascript 和嵌入式应用程序创建)。它不包含 client_secret,因为客户端无论如何都无法正确保护它,客户端仅使用其 client_id。由于移动客户端被认为可能不安全,因此服务器不得发出刷新令牌,而只能发出短期访问令牌。