【问题标题】:Authorization in API Gateway vs Microservice EndpointsAPI 网关与微服务端点中的授权
【发布时间】:2020-05-12 00:18:57
【问题描述】:

我正在尝试构建微服务架构。我已经了解了 API 网关的一些好处,例如:负载平衡、调用多个微服务并聚合结果、缓存管理等。所以我决定将它包含在我的系统中。

我的问题是我是否应该在网关层或在每个微服务端点中单独实施授权?例如在网关上对用户进行身份验证并以解密形式传递用户声明以用于每个服务调用的授权逻辑?

在调用每个服务之前授权一些聚合似乎很有意义并且可以节省处理时间。但是,授权逻辑实际上是单个服务的关注点。

你有什么建议?

【问题讨论】:

    标签: security design-patterns architecture authorization microservices


    【解决方案1】:

    每个微服务端点。在 API 网关中实现授权将使您的系统变得僵化。如果在任何后期阶段,您必须分离授权逻辑(例如,内部用户、外部用户、打开 api)。这将很难融入。 授权应在每个 API 级别进行。

    【讨论】:

    • 谢谢你,这就是我的想法。我计划为不同的用例添加几个 API 网关,并意识到为所有这些用例实现授权是错误的。所以我的想法是在 API 级别进行身份验证,但是可以为不同的网关实现一些自定义身份验证。像仅适用于移动用户的身份验证。
    【解决方案2】:

    您可以使用 API 网关模式/API 网关。然后您还可以卸载微服务的身份验证/授权责任。调用服务的用户或开发人员将很容易。 API GW 甚至支持外部/内部 GW。它可能支持角色基础权限。例如:WSO2 APIM。

    当您拥有 API /MS GW 时,您将获得以下优势:

    • API 网关是任何微服务调用的单一入口点。
    • 它可以作为代理服务将请求路由到相关的微服务。
    • 它可以汇总结果以发送回消费者。
    • 此解决方案可以为每种特定类型的客户端创建细粒度的 API。
    • 它还可以转换协议请求和响应。

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 1970-01-01
      • 2019-04-06
      • 2020-06-16
      • 1970-01-01
      • 2019-03-15
      • 2015-10-03
      • 1970-01-01
      • 2017-12-09
      相关资源
      最近更新 更多