Security 在服务器上验证移动应用程序客户端的方法

Security 在服务器上验证移动应用程序客户端的方法,security,mobile,oauth-2.0,Security,Mobile,Oauth 2.0,我在寻找一种设计的方法 移动应用程序服务器API,其中: 使用OAuth2.0授权用户和应用程序使用服务器 在服务器上验证它是否是合法的应用程序 我现在面临的问题是:Oauth2.0术语中的应用程序是公共客户机: 没有办法保护应用程序包中的任何静态信息——任何人都可以提取这些信息并在假应用程序中重用 若我添加了一些额外的方法来在服务器上注册应用程序的新实例,那个么并没有什么可以阻止假应用程序做同样的事情 是否有任何方法可以在不涉及RESTAPI的情况下在应用程序和服务器之间交换数据,或者获取

我在寻找一种设计的方法

移动应用程序服务器API,其中:

  • 使用OAuth2.0授权用户和应用程序使用服务器
  • 在服务器上验证它是否是合法的应用程序
我现在面临的问题是:Oauth2.0术语中的应用程序是公共客户机: 没有办法保护应用程序包中的任何静态信息——任何人都可以提取这些信息并在假应用程序中重用

若我添加了一些额外的方法来在服务器上注册应用程序的新实例,那个么并没有什么可以阻止假应用程序做同样的事情

是否有任何方法可以在不涉及RESTAPI的情况下在应用程序和服务器之间交换数据,或者获取有关调用应用程序的验证信息


我知道答案是特定于平台的-我对任何平台上的信息都感兴趣,因为我可以搜索其他平台。

对于移动应用程序,使用授权码流(PKCE),它生成运行时秘密,因此不需要在应用程序中部署固定密码

恶意应用程序可能会使用应用程序的客户端Id和重定向URI,但解决此问题的一种方法是使用声明的基于HTTPS方案的重定向,如中所建议的那样

如果对这种方法感兴趣,我的博客有几个详细的例子:


感谢您的想法,但PKCE不会验证公共应用程序。这只是删除固定机密,但假的应用程序steel可以使用真实应用程序的客户端id。如果您使用声明的HTTPS方案重定向,则尝试使用您的客户端id的应用程序将无法收到登录响应-我已更新了上面我的原始答案(以及链接)。感谢澄清,我将查找声明的HTTPS方案