我试图弄清楚如何在微服务架构中使用 json Web 令牌来管理会话。
看看这个设计article http://nordicapis.com/how-to-control-user-identity-within-microservices/我目前的想法是客户端将发送一个首先通过防火墙的请求。该请求将包含防火墙发送到授权服务器的不透明/参考令牌。授权服务器使用包含用户所有会话信息的值令牌进行响应。然后,防火墙将请求与值令牌一起传递给 API,然后值令牌将传播到满足请求所需的所有不同微服务。
我有两个问题:
- 应如何处理价值令牌中会话信息的更新?详细来说,当令牌中的会话信息更新时,需要在授权服务器中更新它。每个更改令牌的服务都应该与授权服务器通信吗?
- 所有微服务都应该使用这个单一令牌来存储其会话信息吗?或者每个服务都有一个个性化的令牌会更好吗?如果是后者,请说明如何调整设计。
这种设计的一个非常(!)重要的“美中不足”......这需要你提前仔细思考......是:“正是what是指‘会话’信息。”在这个架构中,“每个人都是racing和其他人一起。”如果会话信息是updated,您不知道也基本上无法(!)知道哪些代理知道该更改,哪些代理不知道。更复杂的是,新请求异步到达,并且会以不可预测的方式与其他请求重叠。
因此,授权服务器必须是这样的……仅此而已。它验证了(验证...)不透明令牌,并提供请求内容的可信描述授权的去做。但是,它所蕴含的信息基本上是无法改变的。具体来说,它不能在中保存“会话状态”数据网络服务器这个词的意义。
每个微服务提供商都必须维护自己的“托管板”*(我的术语......“Web 服务器中自己的特定子集将是‘会话池’”),并且它是理想的但不总是feasible其董事会将独立于其他董事会。几乎可以肯定,它必须使用中央数据库(带有事务)来与其他类似情况的服务提供商进行协调。尽管如此,如果事实是这些“手提包”中的任何一个的内容与其他任何一个“手提包”都存在因果关系,那么它们之间现在就存在不同步的问题。
尽管微服务架构具有一定的学术吸引力,但恕我直言,设计必须是小心经过研究以确定它们实际上与这种方法兼容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)