首页 > 解决方案 > 将 REST API URI 中的tenantId 与 JWT 令牌中的值进行比较的最佳方法

问题描述

在我们的多租户应用程序中,我们的大多数端点都以 /tenants/:tenantId 为前缀。在所有这些端点中,我们最终调用了一个方法,该方法将 URI 中的租户 ID 与 JWT 令牌中的租户 ID 进行比较。

我们正在使用 Cognito、API 网关和 lambda 函数。集中检查而不是checkTenantMatch()从大多数端点调用方法的最佳位置是什么?

标签: aws-lambdajwtaws-api-gatewayapi-gateway

解决方案


您可以在 API 网关中实施此类检查(如果可能)以拒绝没有匹配值的早期请求。这将为您节省一些访问您的服务的流量。尽管如此,您的 API 仍应执行此类检查。应该这样做以防止有人设法通过您的网关并直接调用 API 的情况。这也可以防止来自组织内部的任何恶意行为。

您也可以考虑tenantId完全从 URL 中删除它。然后 API 将只从 JWT 中获取值。这样您就可以确保没有人可以滥用它。


推荐阅读