首页 > 解决方案 > 一个用户多个帐户/JWT 在 Istio 中进行授权

问题描述

目前我正在开发一个 SaaS 商店托管平台,并试图找出一个用于多个商店身份验证的概念。每个用户可以拥有多个商店,每个商店都有不同的订阅计划,因此访问微服务的权限/角色也不同。

由于后端的微服务,我想使用 Kubernetes、Istio 和 JWT 来保持身份验证过程几乎是无状态的。但是,例如,如果用户拥有 100 家商店怎么办。由于有效负载大小问题,我无法将每个商店的所有角色存储在一个 JWT 中。我不想向用户发送多 (100) 个 JWT,因为我想将它们安全地存储在 cookie 中,并且它们将在每个请求时发送。我不想要类似“帐户切换”的功能,因为用户应该同时访问所有商店。

我的想法是简单地对用户进行身份验证,并另外编写一个身份验证服务作为网关,该网关查找请求的存储“/api/store/:id”,然后使用适当的角色签署一个 jwt,以便 Istio 服务网格可以在内部对其进行授权。我想从微服务源代码中消除授权开销。使用这种方法,我可能会增加请求的延迟并进行数据库查找。

我想听听你对这个想法的建议,或者你想出一个比我更好的解决方案。

谢谢

标签: authenticationmicroservicessaas

解决方案


推荐阅读