Size: a a a

2021 June 08

Y

Yuri in nginx_ru
А… понял. ALB не все умеет
источник

M

Mr. Anderson in nginx_ru
Чтоб 307 редирект делать
источник

M

Mr. Anderson in nginx_ru
На ALB нет его
источник

M

Mr. Anderson in nginx_ru
Только 301 и 302
источник

M

Mr. Anderson in nginx_ru
А тут пост запрос, а вот 301 и 302 не поддерживают ее
источник

Y

Yuri in nginx_ru
источник

Y

Yuri in nginx_ru
Как видно из описания, он работает только в контексте http
источник

Y

Yuri in nginx_ru
т.е. если ты его включишь внутрь server{} - будет ошибка
источник

M

Mr. Anderson in nginx_ru
Вне сервера то есть
источник

M

Mr. Anderson in nginx_ru
Ок, это хотел уточнить
источник

Y

Yuri in nginx_ru
а вот location https://nginx.org/ru/docs/http/ngx_http_core_module.html#location
Его контекст - внутри server или внутри другого location (чего я не одобряю, но вполне имеет место быть и такое)
источник

M

Max in nginx_ru
Кто-нибудь знает, как на nginx в роли реверс-прокси настроить basic auth через заголовок Proxy-Authenticate (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Proxy-Authenticate)?
источник

Y

Yuri in nginx_ru
а задача какая? Ну чтобы не просто «bacis auth через заголовок не для basic auth», а чтобы вот задача
источник

M

Max in nginx_ru
Юрий, добрый вечер. Задаю вопрос в связи со следующей задачей.

Есть nginx в роли прокси. Все location, по которым он отправляет, должны быть с basic auth (мне это очень не нравится, но, к сожалению, ничего поделать не могу, это не мое требование). Прокси ведет на страницу входа, например, site.com/dashboard. На этой странице - форма авторизации, схема авторизации - JWT.

Если я настраиваю на прокси basic auth по "книге", то прокси отправляет ответ с заголовком WWW-Authenticate. При переходе на требуемый location вводим креденшл, браузер отправляет запрос с заголовком Authorization: Basic ... - попадаем на site.com/dashboard. На сайте в форме вводим логин и пароль, нажимаем "отправить". После этого браузер должен отправить (по моей логике) Authorization: Bearer <JWT ...>. Но вместе этого опять отправляет Authorization: Basic ... - из-за настроеной basic auth на прокси.

Итого: мне при одном запросе надо отправить два заголовка авторизации - Basic (для прокси) и Bearer (для сервера), но так не работает. Видимо, заголовки затирают друг друга.

В связи с вышеизложенным есть идея отправлять два неодинаковых заголовка - Proxy-Authorization (для прокси с basic auth) и Authorization (для сервера с JWT). Никак не могу нагуглить, как в nginx настроить basic auth, но с отправкой Proxy-Authenticate вместо "стандартного" WWW-Authenticate.

Может быть, кто-то сталкивался с подобной проблемой?
источник

Y

Yuri in nginx_ru
Ага. Понятно. А пользователь по заданию должен вводить basic пароль? Или надо его просто проваливать дальше в приложение?
источник

M

Max in nginx_ru
Да, надо вводить руками.
источник

Y

Yuri in nginx_ru
Если не надо - ставь proxy_set_header Authorization “Basic hdhdbdbdbdbdbd”;
В нужном локейшн
источник

Y

Yuri in nginx_ru
То есть должна быть и Бейсик и JWT одновременно?
источник

M

Max in nginx_ru
да :-(
источник

Y

Yuri in nginx_ru
Что-то как-то наверчено )
источник