jwt - 在 HTTP API 网关中使用授权方时将 JWT 令牌替换为另一个 JWT 令牌
问题描述
在我的项目中,我目前有一个以这种方式工作的旧式身份验证:
- 有一个客户端(独立)与
API service
运行在容器中的自定义应用程序对话。 - 使用支持 OAuth 和 PKCE 的云身份提供程序 (IdP)。当用户进入登录页面然后被重定向到回调时,它通过通常的登录过程提供其令牌。
API service
充当回调的接收者。因此,它获取身份提供者token-1
并将其存储在缓存中。基于此,它向客户端返回一个经过修改但不同的token-2
“计算” 。token-1
- 一旦客户端需要进行 REST 调用,它就会用
token-2
JWT 令牌装饰它。调用转到与其匹配的 API 服务,token-1
然后可以针对 IdP 进行验证。
我需要摆脱API service
云原生机制。我假设 AWS HTTP API 网关可以使用其JWT Authorizer 功能直接与 IdP 集成。遗憾的是,我无法影响必须保持功能的当前遗留流程。
但是,我想在 JWT Authorizer 和客户端端点之间插入一个 Lambda,它将面向客户端的令牌交换为 IdP 令牌(执行API service
正在执行的操作)。这可能吗?我该如何处理?
解决方案
听起来您需要创建一个 Lambda 授权方(正式称为自定义授权方),而不是使用默认的 JWT 授权方。
https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html
您可以在其中编写自己的逻辑,包括验证令牌和执行您提到的其他步骤。
推荐阅读
- scala - 如何在 Spark Scala 应用程序的配置中的案例类字段上放置布尔条件并在运行时评估它们?
- pandas - 如何计算 Pandas DataFrame 中 x 行的特定值出现次数?
- sql - 在 Postgis 中生成几何函数的结果并将其合并到一列中
- c - 如何使用 MATLAB 引擎从 C 项目启动已编译的 MATLAB 程序
- javascript - Gatsby - GraphQL 图像未定义
- php - 将一组上传的多个图片与文本一起传递给 php trough ajax
- apache-kafka - Kafka 消费者组中的次优分区
- css - 为什么提交 onclick 在表单内时不起作用?
- laravel - 无法访问 API | Laravel
- visual-studio-2019 - 抑制 VS 数据库项目中的引用错误不起作用