使用Application Load Balancer的AWS lambda基本身份验证
几天前,我问过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。
我找不到任何与基本身份验证和提示窗口相关的内容。
有没有人试过用ALB为lambda函数设置基本auth?在哪里查找信息?
回答如下:回答我自己的问题: 我开始在错误的地方寻找答案。我认为它应该与ALB联系,但最后,并不像我在开始时想的那么难。它可以作为一个简单的Basic Authentication工作。
因此,从异步函数/处理程序返回该响应就足以以最简单的方式执行此操作:
{
statusCode: 401,
statusDescription: "401 Unauthorized",
isBase64Encoded: false,
headers: { "content-type": "application/json", "WWW-Authenticate": "Basic" },
body: "",
};
当然,有可能在这个回复的body
中返回你想要的任何内容。