首页 文章

使用自定义授权程序上下文在AWS API网关上添加标头不起作用

提问于
浏览
0

我已使用VPC链接在AWS API网关上使用单个方法设置API到HTTP服务 .

API gateway setup

我还使用Lambda为该API方法设置了TOKEN自定义授权程序 .

Authorizer setup

自定义授权程序基于AWS Node.js自定义授权程序蓝图,我基本上允许所有方法通过并返回“上下文”部分以及IAM .

{
  "principalId": "user|a1b2c3d4",
  "policyDocument": {
    "Version": "2012-10-17",
    "Statement": [
      {
        "Action": "execute-api:Invoke",
        "Effect": "Allow",
        "Resource": [
          "arn:aws:execute-api:[region]:[account_id]:[restApiId]/[stage]/*/*"
        ]
      }
    ]
  },
  "context": {
    "key": "new-token",
    "number": 1,
    "bool": true
  }
}

这是Lambda测试时的结果,包括Lambda测试控制台和API网关自定义授权控制台 .

最后,我将Authorization标头映射到Integration Request部分中的'context.authorizer.key' .

现在,当我执行请求时,我希望Authorization标头将填充来自授权者响应的“context”部分的值,但它从未填充过 .

我究竟做错了什么?

1 回答

  • 0

    事实证明我的设置一直都是正确的 .

    我正在使用AWS API Gateway测试工具进行测试(使用其中一个屏幕截图中的TEST按钮),但该工具实际上并不允许您端到端地测试它 . 我最终部署了我的舞台,然后使用Postman进行测试 . 然后它开始工作了 . 奇怪的 .

相关问题