我们正试图找出IPC认证和授权的最佳实践。我会解释一下。 我们有一个基于微服务的架构SaaS,具有专门的身份验证服务。该服务负责执行身份验证和管理身份验证令牌(JWT)。
对于登录并开始使用来自不同服务的资源的用户来说,一切都非常有效。
现在的问题是如何验证和授权由其他服务发起的请求(没有特定用户的上下文)?
我们最关心的是这样的令牌/密码会在某些时候受到损害,因为从一个服务到另一个服务的请求被高级别的权限处理。
干杯,
答案 0 :(得分:0)
我不是微服务专家,只是开始在微服务世界中沾沾自喜。从我以前读过的内容来看,这可以通过多种方式处理,其中一种方法正如你所提到的那样是硬编码api-keys,以便服务能够相互识别。但我个人从不喜欢这个想法 - 也像你提到的那样使用每个服务的用户。我非常喜欢的解决方案是使用 Oauth2 来处理这些场景 - 我发现一个有趣的实现是Gluu Server,我认为 客户凭据授权类型 是您正在寻找的内容 - 请参阅 https://gluu.org/docs/integrate/oauth2grants/ 。
玩得开心:)
答案 1 :(得分:0)
通常,API网关是任何MS系统的组成部分。 所有服务都已封装,如果没有API网关,则无法访问。
这种封装允许服务之间的直接通信,而不提供请求者有效负载,如果请求直接来自API网关,则应该是必需的。
在这种情况下,请求会以不同的方式进行,并遵循不同的逻辑/中间件管道。无需额外的特殊用户。