Базовая аутентификация AWS с помощью Application Load Balancer
Пару дней назад я попросил AWS lambda basic-authentication без кастомного авторизатора. Я получил ответ, которого мне было достаточно, я реализовал собственный авторизатор, который работает должным образом.
У меня сейчас очень похожая проблема, потому что мы решили изменить API-шлюз на Application Load Balancer, который будет запускать лямбда-функцию по соответствующему пути.
Я также хотел бы подготовить базовую аутентификацию для этой конечной точки (точно так же, как и раньше).
Итак, та же проблема:
Лямбда-функция AWS, которая является прокси для дополнительной услуги. Эта функция только перенаправляет весь запрос и дает пользователю полный ответ. Вот почему я должен заставить использование Authentication
заголовок, и я хотел бы иметь окно приглашения для передачи учетных данных: Аутентификация.
Ответ, который должен быть отправлен из лямбда-функции, немного отличается от шлюза API: использование AWS Lambda с балансировщиком нагрузки приложений - AWS Lambda
Что касается аутентификации с использованием ALB, я обнаружил только аутентификацию пользователей с помощью Application Load Balancer - Elastic Load Balancing.
Я не могу найти ничего, связанного с базовой аутентификацией и окном приглашения.
Кто-нибудь когда-нибудь пытался настроить базовую аутентификацию с ALB для лямбда-функции? Где искать информацию?
1 ответ
Чтобы ответить на мой собственный вопрос:
Я начал поиск ответа не в тех местах. Я думал, что это должно быть связано с ALB, но в конце концов, это было не так сложно, как я думал в начале. Он может работать как простая базовая аутентификация.
Итак, достаточно вернуть этот ответ из асинхронной функции / обработчика, чтобы сделать это самым простым способом:
{
statusCode: 401,
statusDescription: "401 Unauthorized",
isBase64Encoded: false,
headers: { "content-type": "application/json", "WWW-Authenticate": "Basic" },
body: "",
};
Конечно, есть возможность вернуть все, что вы хотите в body
этого ответа.