You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS API Gateway验证Plaid webhook及创建对应JWT authorizer

在AWS API Gateway中验证Plaid Webhook的方法

前置准备

  • 首先确认你的Plaid API版本≥2020-09-14,仅该版本及之后的版本支持Webhook JWT签名功能
  • 登录Plaid Dashboard开启Webhook签名功能,记录你的Plaid Client ID,后续配置会用到

方案1:使用API Gateway原生JWT Authorizer(无代码方案,推荐)

这个方案不需要编写自定义代码,直接用API Gateway自带的能力完成验证,配置步骤如下:

  1. 进入AWS API Gateway控制台,找到你用来接收Plaid Webhook的HTTP API实例
  2. 切换到「授权」标签页,点击创建授权方,类型选择JWT
  3. 身份来源填写$request.header.Plaid-Verification,指定从Plaid请求的指定头字段中获取JWT令牌
  4. 发行方(issuer)填写https://webhooks.plaid.com,受众(Audiences)填写你的Plaid Client ID
  5. 公钥来源选择JWKS,填写Plaid公开的JWKS服务地址,API Gateway会自动定期拉取公钥完成签名校验
  6. 保存授权方后,将该授权方绑定到你接收Plaid Webhook的路由上即可完成配置

方案2:使用Lambda Authorizer(适合有自定义验证需求的场景)

如果你需要在验证签名之外额外做参数校验、请求去重等逻辑,可以选择Lambda自定义授权方:

  • 你需要提前安装对应开发语言的JWT解析依赖库,以Python为例可以用PyJWT,Node.js可以用jsonwebtoken
  • Lambda核心逻辑如下:
    1. 从触发事件的请求头中提取Plaid-Verification字段的JWT字符串
    2. 拉取Plaid公开的JWKS公钥,建议对公钥做本地缓存,避免频繁请求公钥接口被限流
    3. 校验JWT的签名合法性,同时校验iss是否为https://webhooks.plaid.com、aud是否为你的Plaid Client ID、exp是否未过期
    4. 校验通过返回允许访问的IAM策略,校验失败返回拒绝访问的策略

如果你用的是不支持JWT签名的旧版本Plaid Webhook,也只能用该方案:从请求头中取出Plaid-Signature字段,将原始请求体和你的Webhook密钥拼接后做SHA256哈希,和签名字段比对即可完成验证。

Plaid官方参考实现说明

Plaid官方提供了AWS环境下验证Webhook的完整参考实现,覆盖了上述两种方案,同时提供了CloudFormation、Terraform的可直接部署模板,以及不同语言的Lambda示例代码,你可以直接在Plaid官方开发文档中查找对应内容。

内容的提问来源于stack exchange,提问作者maanguyil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:36:05