使用微服务实现SaaS

时间:2018-02-23 13:53:03

标签: microservices

我试图在ASP.NET Core 2.0中构建基于Web的SaaS解决方案,借助微服务架构,基于令牌的身份验证和服务将托管在Docker上。每个客户端都有自己的用户,产品和其他详细信息以及具有共享模式的多个数据库每个微服务都有自己的数据库(Schema-per-service)。

我遇到了障碍,我需要找到登录用户的数据库凭据(连接字符串),以便数据库连接将动态传递到相应的微服务以从各自的客户端数据库中获取数据?

1 个答案:

答案 0 :(得分:0)

我认为您有一些微服务来处理客户端身份验证到他的SaaS帐户并生成令牌以使用SaaS微服务(如#34;私钥")正确吗? 它是微服务架构的完美案例:

  1. 创建一个微服务,其中包含有关客户端环境配置的资源
  2. 此微服务使用客户端的私钥
  3. 接收请求
  4. 然后请求身份验证服务验证传递的私钥
  5. 获取身份验证服务的响应以及某种客户端的唯一密钥
  6. 响应与该客户端唯一密钥相对应的环境配置(如果身份验证令牌与任何客户端不匹配,则为404)
  7. 现在有了这个微服务(我打电话给#34;环境微服务"),SaaS的任何其他微服务都需要请求环境微服务来获取客户端的配置(数据库连接字符串,存储系统等)。从这一点开始,您可以在每个服务上实现一些缓存策略,以将私钥映射到一组配置(如果您的模型允许,则保持持久数据库连接)。只需确保此缓存具​​有一个间隔,以根据环境微服务验证令牌和配置。