Welcome! Log In Create A New Profile

Advanced

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

Maxim Dounin
January 09, 2020 08:28AM
Hello!

On Thu, Jan 09, 2020 at 02:53:53AM -0500, andrei_abc wrote:

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

[...]

> 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
> все равно не выполняется
> Кто подскажет в чем может быть проблема?

Проблема в том, что if - выполняется при выборе конфигурации, см.
описание модуля rewrite тут:

http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html

Соответственно к тому моменту, как выбрана конфигурация и началась
обработка запроса в рамках "location /" - в частности, выполнился
auth_request - директива if уже давно отработала, и пытаться в ней
использовать результаты auth_request - бессмысленно.

В данном случае правильно использовать map, как-то так (на уровне
http):

map $user $username {
default ocadmin;
test@mail.ru user1;
}

Ну и соответственно убрать "set $username ..." и "if ($user ...".

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

Maxim Dounin January 09, 2020 08:28AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 95
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready