如何保护 Oauth 2.0 客户端 ID 和客户端机密

How to Secure Oauth 2.0 Client ID and Client Secret

当 Android oauth 2.0 客户端应用程序在其中硬编码了客户端 ID 和客户端密码。反编译应用程序并检索凭据非常容易。 那么提供这些凭据给oauth服务器有什么用呢

不建议将 client_idclient_secret 硬编码到本机应用程序中,即在移动应用程序场景中使用所谓的“机密客户端”,正是因为 client_secret 不能保密。

本机应用程序通常是授权服务器的“public 客户端”,即没有 client_secret 的客户端。安全性来自以下事实:注册了唯一的重定向 URI 并应用了 PKCE (https://www.rfc-editor.org/rfc/rfc7636) 等其他 OAuth 功能。

有关将 OAuth 2.0 用于本机应用程序的一般建议,请参阅:https://datatracker.ietf.org/doc/html/draft-ietf-oauth-native-apps, especially the security considerations at: https://datatracker.ietf.org/doc/html/draft-ietf-oauth-native-apps-10#section-8