Входные аннотации nginx для перенаправления на аутентификацию и возврата заголовков
У меня есть приведенный ниже файл nginx conf, который перенаправляет все запросы (по умолчанию) в /auth (моего сервиса), а затем возвращает заголовок ответа (foo_id). Этот заголовок будет перенаправлен на исходный URI запроса, запущенный пользователем. Ниже работает правильно с nginx. ...
location /
{
auth_request /auth;
auth_request_set $foo_id $upstream_http_foo_id;
proxy_pass $request_uri
proxy_set_header X-foo-Token $foo_id;
root html;
index index.html index.htm;
}
location /auth
{
internal;
proxy_pass https://myhost/myservice;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
Но мне нужны соответствующие правила входа / аннотации, которые необходимы для достижения вышеупомянутого варианта использования. Я не смог получить соответствующие аннотации, связанные с аутентификацией / прокси-пропуском. Пожалуйста, помогите.
0 ответов
Вы можете использовать Nginx Ingress Annotations для достижения этой цели.
В двух словах:
Предполагается, что у вас есть внешняя служба аутентификации, для которой настроена служба Kubernetes. Вам нужна аннотация, которая отправляет запросы авторизации на этот сервис:
nginx.ingress.kubernetes.io/auth-url: http://auth-service.<NameSpace>.svc.cluster.local/auth
Также вы можете использовать nginx.ingress.kubernetes.io/auth-snippet
аннотация для установки вашей пользовательской конфигурации для запроса на аутентификацию, например
nginx.ingress.kubernetes.io/auth-snippet: |
auth_request_set $foo_id $upstream_http_foo_id;
proxy_pass $request_uri
proxy_set_header X-foo-Token $foo_id;
Если вам нужно вернуть некоторые заголовки при успешной аутентификации, вы можете использовать nginx.ingress.kubernetes.io/auth-response-headers
:
nginx.ingress.kubernetes.io/auth-response-headers: X-Auth
А также, nginx.ingress.kubernetes.io/auth-signin
указать пользовательскую страницу ошибки