AWS API 网关简单 Lamda 授权方在与使用私有资源集成的 HTTP API 一起使用时失败

AWS API Gateway Simple Lamda Authorizer failing when used with HTTP API that's using private resource integration

我已经使用 HTTP API 设置了 API 网关,它被配置为使用 VPC link.

的私有应用程序负载均衡器

我有一条使用此集成的路线,我可以请求我的路线 并且我从我的 API.

获得成功响应

当我现在想保护这条路线时,问题就来了。 我选择了一个简单的 lambda 授权者并设置了一个我在许多 tuts 中看到的基本示例:

exports.handler = async(event, context) => {
    let response = {
        "isAuthorized": false,
        "context": {
            "AuthInfo": "defaultdeny"
        }
    };
    if (event.headers.authorization === "Bearer secretToken") {
        response = {
            "isAuthorized": true,
            "context": {
                "AuthInfo": "Customer1"
            }
        };
    }
    return response;
};

当我附上我的授权人时,我得到:

{
    "statusCode": 401,
    "error": "Unauthorized",
    "message": "Invalid token."
}

这个响应似乎不是来自授权者,因为在云监视中我可以看到授权者正在返回 true。

我不确定是否因为我正在使用与 VPC 的集成来访问私有资源 link 是否还有我需要做的事情,或者我缺少什么。

在这种情况下,我很难找到有关授权人的任何文档。

非常感谢任何帮助。

授权者设置

我的 Api 是 Strapi CMS,使用 Strapi 如果您将授权 header 传递给端点,即使是 public 一个(就像我一样),然后它自己的身份验证就会启动。

因此,当 header 从 lambda 授权方传递给 Strapi 时,Strapis 授权开始了。非常感谢@stijndepestel