【问题标题】:AWS authenticate multiple apigatewayAWS 验证多个 apigateway
【发布时间】:2021-05-14 09:28:58
【问题描述】:

我有一个 AWS Apigateway,它有两个 api OrderApiItemApi。这些 api 使用 Lambda 授权器 进行授权。 React App 在登录时获取 AWS jwt 令牌。此令牌作为标头发送到 ApiGateway,授权方将对其进行验证。我有另一个带有一个 api userApi 的 Apigateway,它提供有关用户的信息。 OrderApi 和 ItemApi 调用这个 api 来获取用户数据。 UserApi 可能会或可能不会被任何客户端直接调用。现在我的问题是

  • UserApi 需要什么类型的身份验证和授权。是否可以将相同的 Jwt 令牌传递给 UserApi。
  • 由于 UserApi 主要由其他 Api 调用,因此需要对其进行身份验证。
  • 这是通用 UserApi 的正确方法吗?我有其他 Api 将调用以获取用户数据。

【问题讨论】:

  • 是的,可以传递令牌 - 你是否真的想要这取决于例如无论用户是否应该调用它,或者它只是一个内部服务。如果它是一项内部服务,您可以仅依靠授权一个 lambda 调用第二个 api 的 IAM 身份验证。
  • 它很可能会被其他服务使用,例如订单和物品服务以及其他一些服务。您是否将此类 Api 称为内部。

标签: amazon-web-services aws-lambda authorization microservices aws-api-gateway


【解决方案1】:

这完全取决于您的系统。如果无法从外部访问用户服务并且您已经在第一个网关上授权了用户,那么就没有这样的需要。所以,你可以避免同样的事情。

【讨论】:

  • 感谢您的评论。我们还没有决定让用户服务完全内部化。在某些情况下,我们也可能直接从客户端调用用户服务。在这种情况下,我们当前的实现是否有意义。
  • 现在如果用户服务不能从外部直接访问,它可以从某个网关访问。则无需向网关发送令牌。网关可以验证令牌并进行授权。在这种情况下也无需向用户发送 JWT 令牌。
  • 理想情况下,服务不应该直接暴露。它只能通过网关访问。
  • 当我直接说的时候,我的意思是一个 React 应用程序可以为 UserApi 调用网关,而不是通过 OrderApi。
  • 是的,所以我们不需要向用户 API 服务发送令牌。
猜你喜欢
  • 2016-10-02
  • 1970-01-01
  • 2021-09-05
  • 2021-11-15
  • 2018-09-30
  • 1970-01-01
  • 2019-06-25
  • 1970-01-01
  • 2021-05-20
相关资源
最近更新 更多