aws-lambda - 将 REST API URI 中的tenantId 与 JWT 令牌中的值进行比较的最佳方法
问题描述
在我们的多租户应用程序中,我们的大多数端点都以 /tenants/:tenantId 为前缀。在所有这些端点中,我们最终调用了一个方法,该方法将 URI 中的租户 ID 与 JWT 令牌中的租户 ID 进行比较。
我们正在使用 Cognito、API 网关和 lambda 函数。集中检查而不是checkTenantMatch()
从大多数端点调用方法的最佳位置是什么?
解决方案
您可以在 API 网关中实施此类检查(如果可能)以拒绝没有匹配值的早期请求。这将为您节省一些访问您的服务的流量。尽管如此,您的 API 仍应执行此类检查。应该这样做以防止有人设法通过您的网关并直接调用 API 的情况。这也可以防止来自组织内部的任何恶意行为。
您也可以考虑tenantId
完全从 URL 中删除它。然后 API 将只从 JWT 中获取值。这样您就可以确保没有人可以滥用它。
推荐阅读
- javascript - 在 module.exports 中使用时,导入的函数未定义
- docker - 无法在 Centos 7 上的 Docker 中运行 Apache Kylin
- jwt - Aurelia 刷新访问令牌并重新发送失败的请求
- c# - 使用 AssemblyInstaller 卸载服务后,我无法删除 .exe 文件
- python - Python/Pandas 中水平行的百分位数
- angular - 如何始终显示 ng-select 的占位符?
- html - 为什么要使用
- python - PyTorch 的 conv1d 和 SciPy 的 convolve 结果不同
- azure-data-factory - 如何创建 azure datafactory 管道?
- javascript - 为什么在 React 中映射 Array 后出现控制台键错误?