使用应用程序负载平衡器的AWS lambda基本身份验证

时间:2019-02-14 16:12:44

标签: node.js typescript aws-lambda aws-application-load-balancer

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

我现在有一个非常相似的问题,因为我们决定将API网关更改为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

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

有没有人尝试使用lambda函数的ALB设置基本身份验证?在哪里寻找信息?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题:
我在错误的地方开始寻找答案。我认为应该将它与ALB联系起来,但是最后,它并不像我一开始就想的那么难。它可以像简单的Basic Authentication一样工作。

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

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

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