Istio: поддержка аутентификации по URL в аутентификации конечного пользователя

Я собираюсь сделать 3 ноги oauth на istio+kubernetes. Я не нашел способа направить неаутентифицированные запросы в прокси-службу аутентификации, которая выполняет аутентификацию и перенаправляет трафик обратно в целевую службу. Я сделал это с помощью входного контроллера nginx kubernetes, используя следующие аннотации:

nginx.ingress.kubernetes.io/auth-url // URL-адрес, на который будут перенаправляться запросы
nginx.ingress.kubernetes.io/auth-signin // Войдите на страницу, на которую перенаправляется запрос, когда вышеуказанное возвращает 401

Я не нашел эквивалентных в Истио. Я проверил документацию и там написано, что она поддерживает пользовательскую аутентификацию в дополнение к jwt, однако я не нашел такой поддержки.

1 ответ

Отвечая на мой собственный вопрос. На данный момент я понял, что единственный способ сделать это - через EnvoyFilter на istio. Это позволяет нам написать собственный фильтр lua для маршрутизации неаутентифицированных запросов к oauth-прокси, который может выполнять 3-х сторонний поток oauth.

Поток управления запросами

клиент -> входной шлюз -> istio-proxy sidecar -> фильтр посланника -> цель

Фильтр способен выполнять http-вызовы и манипулировать заголовками, что соответствует этому требованию.

Изменить: Подробности об этом здесь.

Другие вопросы по тегам