Входные аннотации 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 указать пользовательскую страницу ошибки

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