OAuth2 规范在此处描述了资源所有者密码凭据授予类型和授权流程。我知道只有“受信任的”客户端应用程序才能使用此授权,例如后端 API 的“官方”iPhone 或 Android 客户端应用程序。
我的问题是:我如何保证来自声称是此客户端应用程序的来源的请求可以信任?例如:
我已经在我的 OAuth2 服务器上注册了我的 android 应用程序,其 client_id
android_app
可以访问授予类型password
(即资源所有者密码凭据)。由于 Android 应用程序是一个客户端应用程序,因此我假设不信任将客户端秘密“保密”,因此没有为其分配一个。应用程序配置包含 client_id 和 grant_type 以及身份验证端点。
用户反编译/解压缩/去混淆我的应用程序并找到 client_id 和端点
是什么阻止他们客户端使用客户端 ID 向该端点发出身份验证请求?我会考虑为客户端分配一个 client_secret,但这似乎并不能解决问题,因为用户可以在应用程序中找到它。