【发布时间】:2021-11-18 18:46:43
【问题描述】:
我正在开发一个 spring-boot 微服务应用程序、用户管理模块和特定的 AuditTrail 服务模块,我的任务是使用 jwt 和其他微服务(可以是 .net、Django 等)创建和保护端点使用此令牌来保护端点。我已经完成了用户管理系统的构建,但现在我被卡住了,因为我不知道如何在其他微服务系统上验证 jwt,并且我被指示不要使用 Api 网关架构。
我正在考虑公开其他微服务可以调用的 api/vi/auth/authenticate 端点,但我不确定是否有更好的方法。也许与其他微服务共享用于创建令牌的 jwt 秘密和算法,并且每个微服务只是自己验证一个令牌。后一种方法涉及编写样板代码,据我所知,但我不知道这些是否是我唯一的选择以及他们可能需要查看哪些缺陷是我能够管理的。
【问题讨论】:
-
在我看来,为
authenticating、validating和authorizing公开单独的端点是最好的主意。因为这些服务可能分布在不同服务器空间的多个集群中。这样做会将这些责任移交给单个微服务(成为微服务的唯一目的)。如果我们正确地分割我们的服务,多个服务不应该一遍又一遍地做同样的事情。
标签: c# spring-boot spring-security jwt microservices