【发布时间】:2019-06-05 15:59:29
【问题描述】:
我对多租户环境中的 RESTful API 和安全性有疑问。
假设你有一个端点:api/branches/:branchId/accounts/:accountId
身份验证通过Bearer Tokens (oauth2) 完成。每个令牌包括一组与调用用户相关联的声明。令牌中包含branchId 声明,每个用户都属于一个分支。
安全限制如下:
- GET 请求的 branchId 应该与存储在令牌声明中的那个相匹配。
- accountId 应该是
branchId标识的分支内的有效帐户。
问题是:以下哪个解决方案是正确的?
- 维护端点:
api/branches/:branchId/accounts/:accountId。并进行必要的安全检查。 - 将endpoint改为:
api/accounts/:accountId,从token中获取branchId,然后做剩下的安全检查。
该应用程序是多租户的。每个分支都是一个租户,每个用户只能访问与其单个分支相关的信息。 谢谢!
【问题讨论】:
-
+1,好问题!也很想知道答案
-
@DevarshDesai 我需要对此采取行动,所以我在下面评论了我的行动方案。请告诉我你的想法。
标签: api security rest oauth-2.0