在使用OAuth登录的移动应用上访问API服务器的最佳做法

问题描述 投票:1回答:0

我有以下实体:

  • 行动应用程式
  • 内部API服务器
  • 内部OAuth服务器

我需要在移动应用中将OAuth实施到OAuth服务器 ,然后再访问API服务器中的用户信息 ,而我在如何安全地实现此方面遇到了麻烦。 我只想到以下方法:

方法1:将用户ID直接从Mobile App传递到API服务器

  1. 通过移动应用中的OAuth登录用户(使用类似AppAuth之类的库)
  2. 将从OAuth检索到的用户ID存储在移动应用中
  3. 移动应用将用户ID发送到API服务器,以便他们可以将正确的资源取回移动应用

但是,此方法似乎不安全, 因为攻击者在传递给API时可以伪造其用户ID

方法2:将OAuth access_token传递给API服务器,让API服务器再次调用OAuth服务器

  1. 通过移动应用中的OAuth登录用户(使用类似AppAuth之类的库)
  2. 存储从OAuth检索的access_token
  3. 移动应用程序将access_token发送到API服务器
  4. API服务器将access_token传递给OAuth服务器
  5. OAuth服务器将用户信息返回给API服务器
  6. 现在,API服务器具有用户信息,并且可以将正确的资源返回给移动应用程序 在此处输入图片说明 方法2似乎更安全,但是我似乎看不到任何人建议的这种基础结构。 此方法似乎也占用大量资源,因为API服务器需要在每次调用API时都调用OAuth服务器。

所以我的问题是:

  1. 在使用OAuth登录的移动应用上访问API服务器的最佳做法是什么?
  2. 如果有最佳实践,那么与这些资源的任何链接?

谢谢!

mobile oauth-2.0 api-design
© www.soinside.com 2019 - 2024. All rights reserved.