如何保护 Oauth 2.0 客户端 ID 和客户端密码
Posted
技术标签:
【中文标题】如何保护 Oauth 2.0 客户端 ID 和客户端密码【英文标题】:How to Secure Oauth 2.0 Client ID and Client Secret 【发布时间】:2017-10-18 01:51:41 【问题描述】:当 android oauth 2.0 客户端应用程序具有客户端 ID 和客户端 Secret 硬编码时。反编译应用程序并检索凭据非常容易。 那么将这些凭据提供给 oauth 服务器有什么用。
【问题讨论】:
【参考方案1】:不建议将client_id
和client_secret
硬编码到本机应用程序中,即在移动应用程序场景中使用所谓的“机密客户端”,因为client_secret
不能保密。
本机应用程序通常是授权服务器的“公共客户端”,即没有client_secret
的应用程序。安全性来自于这样一个事实,即注册了一个唯一的重定向 URI,并应用了其他 OAuth 功能,如 PKCE (https://www.rfc-editor.org/rfc/rfc7636)。
有关将 OAuth 2.0 用于本机应用的一般建议,请参阅:https://datatracker.ietf.org/doc/html/draft-ietf-oauth-native-apps,尤其是安全注意事项:https://datatracker.ietf.org/doc/html/draft-ietf-oauth-native-apps-10#section-8
【讨论】:
以上是关于如何保护 Oauth 2.0 客户端 ID 和客户端密码的主要内容,如果未能解决你的问题,请参考以下文章
Django/tastypie 实现中的 OAuth 2.0 客户端 ID
为啥我不能为同一个包名称创建多个 OAuth 2.0 客户端 ID?