如何跨多个微服务提供用户身份?

时间:2016-02-21 02:59:56

标签: authentication authorization microservices

因此,让我们采用基本的电子商务微服务。

  1. 身份和访问权限。这个微服务将负责用户帐户,角色
    和身份验证。认证方法将基于通常的 基于令牌的流程(用户输入用户名+传递和服务器返回唯一的和 随机令牌通过cookie)。此服务还可用于获取用户个人资料。
  2. 购物车微服务。这种微服务可用于将产品放入购物车中 检查购物车有哪些产品。等等......
  3. 认为"身份和访问"微服务将用于生成随机令牌作为成功验证的结果,并且为了将该令牌链接到用户,该令牌将如何用于使用户的身份可用于购物车微服务?例如,当用户将产品添加到他的购物车时,他将发送授权令牌,购物车微服务将必须基于该令牌识别用户。

    分布式数据库可以选择吗?存储这些令牌并链接到用户构建的数据库,所有微服务都可以访问这些数据库?

    或者所有微服务是否应该从特殊身份和访问API获取用户身份,这将基于访问令牌公开用户?

1 个答案:

答案 0 :(得分:1)

分布式数据库肯定与以下微服务的基本原则相冲突: 微服务拥有其数据并通过定义良好的接口公开它。 没有其他微服务可以直接访问另一个微服务所拥有的数据。 因此,在这种情况下,一种解决方案是拥有令牌微服务或您描述的最后一种解决方案。