【问题标题】:Microservices - IPC authentication/authorization微服务 - IPC 认证/授权
【发布时间】:2016-07-17 10:56:26
【问题描述】:

我们正在尝试找出 IPC 身份验证和授权的最佳做法。我会解释的。 我们有一个基于微服务的架构 SaaS,并提供专门的身份验证服务。该服务负责进行身份验证和管理身份验证令牌 (JWT)。

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

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

  1. 我们是否应该为每个服务生成一个专用用户并将其视为 系统中的任何其他用户(具有适当权限)?
  2. 应该 我们在服务中部署了“硬编码”/动态令牌?
  3. 还有其他想法吗?

我们最担心的是此类令牌/密码会在某个时候受到损害,因为从一项服务到另一项服务的请求会被处理为高级权限。

干杯,

【问题讨论】:

    标签: authentication microservices


    【解决方案1】:

    我不是微服务专家,只是刚刚开始涉足微服务领域。从我到现在为止的阅读中,这可以通过多种方式进行处理,正如您所提到的,其中之一是硬编码 api 密钥,以便服务相互识别。但我个人从不喜欢这个想法 - 也像您提到的那样使用每个服务的用户。我非常喜欢的一个解决方案是使用 Oauth2 来处理这些场景 - 我发现一个有趣的实现是 Gluu Server,我认为 客户端凭据授予类型是您正在寻找的 - 请参阅 https://gluu.org/docs/integrate/oauth2grants/

    玩得开心:)

    【讨论】:

      【解决方案2】:

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

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

      在这种情况下,请求被威胁为不同的东西,并遵循不同的逻辑/中间件管道。不需要额外的特殊用户。

      【讨论】:

        猜你喜欢
        • 2015-07-24
        • 2019-06-26
        • 2018-07-06
        • 2020-10-11
        • 1970-01-01
        • 2018-09-03
        • 2020-11-29
        • 2021-06-04
        • 1970-01-01
        相关资源
        最近更新 更多