微服务 - IPC认证/授权

时间:2016-03-29 18:06:34

标签: authentication microservices

我们正试图找出IPC认证和授权的最佳实践。我会解释一下。 我们有一个基于微服务的架构SaaS,具有专门的身份验证服务。该服务负责执行身份验证和管理身份验证令牌(JWT)。

对于登录并开始使用来自不同服务的资源的用户来说,一切都非常有效。

现在的问题是如何验证和授权由其他服务发起的请求(没有特定用户的上下文)?

  1. 我们应该为每个服务生成一个专用用户并将其视为 系统中的任何其他用户(具有适当的权限)?
  2. 应该 我们在服务中部署了一个"硬编码" /动态令牌?
  3. 还有其他想法吗?
  4. 我们最关心的是这样的令牌/密码会在某些时候受到损害,因为从一个服务到另一个服务的请求被高级别的权限处理。

    干杯,

2 个答案:

答案 0 :(得分:0)

我不是微服务专家,只是开始在微服务世界中沾沾自喜。从我以前读过的内容来看,这可以通过多种方式处理,其中一种方法正如你所提到的那样是硬编码api-keys,以便服务能够相互识别。但我个人从不喜欢这个想法 - 也像你提到的那样使用每个服务的用户。我非常喜欢的解决方案是使用 Oauth2 来处理这些场景 - 我发现一个有趣的实现是Gluu Server,我认为 客户凭据授权类型 是您正在寻找的内容 - 请参阅 https://gluu.org/docs/integrate/oauth2grants/

玩得开心:)

答案 1 :(得分:0)

通常,API网关是任何MS系统的组成部分。 所有服务都已封装,如果没有API网关,则无法访问。

这种封装允许服务之间的直接通信,而不提供请求者有效负载,如果请求直接来自API网关,则应该是必需的。

在这种情况下,请求会以不同的方式进行,并遵循不同的逻辑/中间件管道。无需额外的特殊用户。