AWS Cognito JWT 基于属性的路由

AWS Cognito JWT attribute-based routing

我是 AWS 及其服务的新手。我想要实现的是一个多租户 SaaS 应用程序。我的概念是什么样的: 我使用 Cognito 进行用户身份验证。所有用户,无论他们属于哪个租户,都应该使用一个前端登录。对于租户识别,我使用了一个自定义属性“custom:tenant”,这是我在登录成功时从 JWT 获得的。 对于申请本身,我想使用 VPC 并确保封装,每个租户都应该有自己的 VPC。

示例:

现在我的问题是:如何实现从登录成功到相应VPC的路由?我需要进一步的服务吗?或者我在哪里可以找到这些设置?

有一种标准的基于内容的路由技术,用于基于 JWT 内容的路由。这种类型的东西通常由位于 APIs 前面的反向代理或 API 网关管理,它运行一些自定义逻辑来读取 JWT 并相应地进行路由。这也使管道在应用程序组件之外。

示例

这是一个使用高级脚本语言 LUA 编码的 NGINX 示例,用于读取 JWT 并提取声明。在此示例中,它是一个区域,而在您的情况下,它是一个租户 ID:

先决条件

虽然不是所有的中间件都支持这种类型的路由。例如,您将无法在简单的负载均衡器中做到这一点。一种选择可能是使用 NGINX as a cloud managed service,尽管它会花钱。 APIs 前面的一个好的网关是一个重要的架构组件,所以看看你的公司是否觉得它值得投资。