将 REST API URI 中的tenantId 与 JWT 令牌中的值进行比较的最佳方法
Posted
技术标签:
【中文标题】将 REST API URI 中的tenantId 与 JWT 令牌中的值进行比较的最佳方法【英文标题】:Best way to compare tenantId from the REST API URI with the value in JWT token 【发布时间】:2021-11-01 08:01:24 【问题描述】:在我们的多租户应用程序中,我们的大多数端点都有 /tenants/:tenantId 前缀。在所有这些端点中,我们最终调用了一个方法,将 URI 中的tenantId 与 JWT 令牌中的tenantId 进行比较。
我们正在使用 Cognito、API 网关和 lambda 函数。集中检查而不是从大多数端点调用 checkTenantMatch()
方法的最佳位置是什么?
【问题讨论】:
【参考方案1】:您可以在 API 网关中实施此类检查(如果可能)以拒绝没有匹配值的早期请求。这将为您节省一些访问您的服务的流量。尽管如此,您的 API 仍应执行此类检查。应该这样做以防止有人设法通过您的网关并直接调用 API 的情况。这也可以防止来自组织内部的任何恶意行为。
您也可以考虑完全从 URL 中删除 tenantId
。然后 API 将只从 JWT 中获取值。这样你就可以确保没有人可以滥用它。
【讨论】:
tenantId 更改 API 返回的内容,因此它应该用于 RESTful 和缓存机制以上是关于将 REST API URI 中的tenantId 与 JWT 令牌中的值进行比较的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章
SoapUI,Rest:如何避免在soapui中的REST请求URI中进行参数编码?
C# - REST POST API - 错误 - 无效的 URI:Uri 字符串太长