具有api授权访问权限的移动应用

时间:2014-01-07 18:13:01

标签: api mobile authorization

我正在为需要访问我使用的API的客户创建移动应用。 api需要身份验证,应用程序需要调用api来接收某些特定于每个客户(移动应用程序)的数据。

我只是想确保正确的方法是让移动应用程序将查询发送到我的服务器,然后进行经过身份验证的api调用并将响应返回给移动客户端?

或是否可以让手机直接拨打api电话,大概是使用相同的授权密钥?

1 个答案:

答案 0 :(得分:1)

这主要是一个基于意见的问题,但我会试一试:

  

[意译]我的服务器作为一个API代理进行身份验证调用另一个API代表我的未经认证的用户?

这在API世界中很常见,但有些事情你需要考虑:

  • 这是用户和服务之间的一个额外层,它为数据传输增加了时间。确保您构建可扩展的代理或使用可代表您管理的第三方服务。无论哪种方式,都不要忘记考虑成本。
  • 通常,服务提供商需要进行身份验证。您是否违反任何许可协议,打开这样的API?
  • 每个应用程序或每个用户的身份验证是?如果它是每个用户(例如,每个用户登录并检索唯一的access_token),那么您将以用户而不是<来调用后端API。 EM>应用
  • 目标API是否限速?例如,Instagram的API每小时只允许5000个请求。如果您有10,000个用户每小时使用一次,那么您已经达到了这个限制。
  • 是否存在开放目标API的安全问题?是否有需要保护的敏感信息?如果是这样,打开它就像你在创建安全漏洞一样?
  

是否可以让移动设备API直接调用目标API,可能使用相同的授权密钥?

如果您遵循目标API建立的身份验证流程,那么这绝对是可能的。除了以下内容之外,您还需要考虑上面列出的相同问题列表:

  • 如果您使用的是OAuth2之类的身份验证流程,则标准规定每个用户都应该自行进行身份验证,并使用唯一的access_token进行API调用。您的目标API提供商是否提供此服务?如果是这样,那就是要走的路,如果access_token被泄露,只有那个用户的数据/帐户/等。有风险。
  • 如果您正在使用的应用程序级身份验证(例如,您的应用程序的client_idclient_secret)直接在您的移动应用程序,予以警告,可以获取并毫不费力地损害,因而一攻击者可以通过这种方式访问​​整个目标API。