首页 > 解决方案 > 使用 Application Load Balancer 的 AWS lambda 基本身份验证

问题描述

几天前,我询问了AWS lambda basic-authentication without custom authorizer。我得到了对我来说足够的答案,我实现了正常工作的自定义授权器。

我现在有一个非常相似的问题,因为我们决定将 API Gateway 更改为 Application Load Balancer,这将在适当的路径上触发 lambda 函数。

我也想为此端点准备基本身份验证(与以前完全相同)。

所以,同样的问题:

AWS lambda 函数,它是附加服务的代理。这个函数只转发整个请求并给用户整个响应。这就是为什么我需要强制使用Authentication标头,并且我希望有提示窗口来传递凭据:Authentication

应该从 lambda 函数发送的响应与 API 网关略有不同:Using AWS Lambda with an Application Load Balancer - AWS Lambda

关于使用 ALB 的身份验证,我发现只有Authenticate Users Using an Application Load Balancer - Elastic Load Balancing

我找不到与基本身份验证和提示窗口相关的任何内容。

有没有人尝试过使用 ALB 为 lambda 函数设置基本身份验证?去哪里找资料?

标签: node.jstypescriptaws-lambdaaws-application-load-balancer

解决方案


回答我自己的问题:
我开始在错误的地方寻找答案。我认为它应该与 ALB 连接,但最终,它并没有我一开始想的那么难。它可以作为一个简单的基本身份验证

因此,以最简单的方式从异步函数/处理程序返回该响应就足够了:

{
    statusCode: 401,
    statusDescription: "401 Unauthorized",
    isBase64Encoded: false,
    headers: { "content-type": "application/json", "WWW-Authenticate": "Basic" },
    body: "",
};

当然,有可能在body此响应中返回您想要的任何内容。


推荐阅读