【问题标题】:Replacing JWT token by another JWT token while using an authorizer in HTTP API Gateway在 HTTP API 网关中使用授权方时将 JWT 令牌替换为另一个 JWT 令牌
【发布时间】:2021-03-08 16:14:34
【问题描述】:

在我的项目中,我目前有一个以这种方式工作的旧式身份验证:

  1. 有一个客户端(独立)与 API service 通信,API service 是在容器中运行的自定义应用程序。
  2. 使用了支持 OAuth 和 PKCE 的云身份提供商 (IdP)。当用户进入登录页面然后被重定向到回调时,它通过通常的登录过程提供其令牌。
  3. API service 充当回调的接收者。因此,它获取身份提供者token-1 并将其存储在缓存中。基于此,它向客户端返回修改后的 token-2“计算”来自 token-1,但不同。
  4. 一旦客户端需要进行 REST 调用,它会使用 token-2 JWT 令牌对其进行装饰。调用会转到与 token-1 匹配的 API 服务,然后可以针对 IdP 进行验证。

我需要使用云原生机制摆脱 API service。我假设 AWS HTTP API 网关可以使用其JWT Authorizer capability 直接与 IdP 集成。很遗憾,我无法影响必须保持功能的当前遗留流程。

但是,我想在 JWT 授权方和客户端端点之间插入一个 Lambda,它将面向客户端的令牌交换为 IdP 令牌(执行 API service 正在执行的操作)。这可能吗?我该如何处理?

【问题讨论】:

    标签: jwt jwt-auth amazon-api-gateway lambda-authorizer


    【解决方案1】:

    听起来您需要创建一个 Lambda 授权方(正式称为自定义授权方),而不是使用默认的 JWT 授权方。

    https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html

    您可以在其中编写自己的逻辑,包括验证令牌和执行您提到的其他步骤。

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 2018-06-05
      • 2020-10-20
      • 2012-11-20
      • 2017-08-22
      • 2020-11-22
      • 2018-01-20
      • 2021-08-17
      • 2017-07-09
      相关资源
      最近更新 更多