API网关:经过身份验证和未经身份验证的端点的混合物

问题描述 投票:0回答:1

我一直在努力创建一个利用微服务架构和API网关的平台。我遇到的一个问题是如何让API网关同时处理经过身份验证和未经身份验证的端点。

Here is a simplified and rough diagram of the system I am thinking about

对于我的系统,我将使用Auth0,我想我想让service使用公共密钥而不是gateway来检查令牌是否有效。如果我有一天要公开我的一项服务,这将给我带来更大的灵活性。而且我想我希望保持网关较小。

但是网关将如何处理经过身份验证的端点和未经身份验证的端点的混合?即我想使GET端点“打开”,而POST端点需要登录。哪个实体应该管理端点是“开放”还是“需要登录”,网关还是服务?

  1. 无论用户是否登录,我是否总是让gateway将请求传递给service,并且让该服务返回401?
  2. 或者gateway包含有关哪些端点需要登录的逻辑,如果请求中没有令牌,则返回401?完全跳过service
microservices api-gateway system-design
1个回答
0
投票

是的,它是在您要使用的网关上配置的。例如,在AWS API网关上,您可以为访问点提供一个lambda自定义网关授权者。 Authorizer函数可以通过向指向该端点的所有请求返回ok来“授权”。

更多阅读here

© www.soinside.com 2019 - 2024. All rights reserved.