Удалить исходящие заголовки в envoy proxy после внешней аутентификации

#kubernetes #reverse-proxy #envoyproxy

#kubernetes #обратный прокси #envoyproxy

Вопрос:

Есть ли какой-либо способ удалить заголовок, идущий вверх по потоку после внешней аутентификации с прокси-сервером envoy? Мы планировали перейти на envoy proxy для нашего внутреннего шлюза API, но сейчас это блокируется.

Например: внешняя служба аутентификации получает запрос и обрабатывает заголовок аутентификации, в случае сбоя проверки он выдает 401. Но если это удастся, я хочу запретить отправку заголовков аутентификации вверх по течению.

Согласно документации Ext Auth:

Успешная проверка позволяет службе авторизации добавлять или переопределять заголовки из исходного запроса перед отправкой его вышестоящему. Это делается путем настройки того, какие заголовки в ответе авторизации должны быть отправлены в восходящий поток. Смотрите разрешенные заголовки allowed_authorization_headers ниже.

Там не упоминается, могу ли я полностью удалить заголовок, идущий вверх по течению.

У меня есть возможность переопределить заголовки, но это вызывает конфликт заголовков на вышестоящих серверах. Таким образом, это не возможное решение.

Как я могу этого добиться?

Ответ №1:

Обратите внимание, что я не эксперт в envoy proxy, но из того, что я смог найти, вы действительно можете написать скрипт Lua, который сможет удалять заголовки. В документации вы можете найти пример такого скрипта, и, немного повозившись, вы сможете настроить его при необходимости:

 -- Remove a response header named 'foo'
response_handle:headers():remove("foo")
  

Вы можете найти более подробную информацию в официальной документации. Вот для config.filter.http.lua.v2.Lua и вот примеры скриптов.

Ответ №2:

Как насчет использования опции route level request_headers_to_remove для удаления заголовка авторизации?

Смотрите https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto