Как использовать переменную upstream http x auth request user

andrei_abc nginx-forum на forum.nginx.org
Чт Янв 9 07:53:53 UTC 2020


у меня есть конфигурация nignx v1.17.6 c oauth2_proxy  v4.1.0-12-g7663565
авторизация проходит через Azure.

server {

        listen 443 ssl;

        server_name 127.0.0.1;

        ssl_certificate     ../nginx-selfsigned.crt;
        ssl_certificate_key ../nginx-selfsigned.key;

        location /oauth2/ {
                proxy_pass       http://127.0.0.1:4180;
                proxy_set_header Host                    $host;
                proxy_set_header X-Real-IP               $remote_addr;
                proxy_set_header X-Scheme                $scheme;
                proxy_set_header X-Auth-Request-Redirect $request_uri;
        }

        location = /oauth2/auth {
                 proxy_pass       http://127.0.0.1:4180;
                 proxy_set_header Host             $host;
                 proxy_set_header X-Real-IP        $remote_addr;
                 proxy_set_header X-Scheme         $scheme;
                 # nginx auth_request includes headers but not body
                 proxy_set_header Content-Length   "";
                 proxy_pass_request_body           off;
        }

        location / {
                auth_request /oauth2/auth;
                error_page 401 = /oauth2/sign_in;

                auth_request_set $user  
$upstream_http_x_auth_request_user;
                auth_request_set $email 
$upstream_http_x_auth_request_email;
                proxy_set_header X-User  $user;
                proxy_set_header X-Email $email;
                auth_request_set $auth_cookie $upstream_http_set_cookie;
                add_header Set-Cookie $auth_cookie;

                auth_request_set $auth_cookie_name_upstream_1
$upstream_cookie_auth_cookie_name_1;

                add_header X-Debug "$user";
                add_header X-Debug2 "$email";

                set $username ocadmin;

                proxy_pass http://127.0.0.1:5601;

                proxy_set_header Authorization "Basic secret:secret";

          
                if ($user = "test на mail.ru") {
                        set $username user1;
                }

                proxy_set_header es-security-runas-user $username;

        }

}

переменную user и email в header видно, и если она ровна test на mail.ru, if
все равно не выполняется
Кто подскажет в чем может быть проблема?

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,286671,286671#msg-286671



Подробная информация о списке рассылки nginx-ru