使用OAuth

时间:2019-01-02 11:21:56

标签: mobile oauth-2.0 api-design

我有以下实体:

  • 移动应用
  • 内部API服务器
  • 内部OAuth服务器

我需要在移动应用中将OAuth实施到OAuth服务器,然后随后在API服务器中访问用户信息,但我在如何做到这一点上遇到了麻烦安全地实现。我只想到以下方法:

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

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

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

方法2:将OAuth访问令牌传递给API服务器,让API服务器再次调用OAuth服务器

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

所以我的问题是:

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

谢谢!

0 个答案:

没有答案