Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Переменная сертификата и Authorization header.
Hello!
On Tue, Feb 14, 2012 at 10:30:07AM -0500, devox wrote:
> Добрый день!
>
> Подскажите, существует ли возможность
> указать заголовку proxy_set_header Authorization
> текстовую базу соответствия серийного
> номера сертификата и логина/пароля в
> base64. Что-то на подобие соответствия ip
> адреса и логина/пароля, как здесь:
>
> /etc/nginx/base.txt
> "geo $auth_base64 {
> <remote_addr1>/32 <base64_1>;
> <remote_addr2>/32 <base64_2>;
> <remote_addrN>/32 <base64_N>;
> default <base64_for_default_address>
> }"
>
> /etc/nginx/nginx.conf
> "....
> proxy_set_header Authorization "Basic $auth_base64";"
>
> Задача в следующем: Front-end авторизует
> пользователя по сертификату,
> вытаскивает из сертификата переменную
> $ssl_client_serial, обращается к базе формата:
>
> $ssl_client_serial1 <base64_1>;
> $ssl_client_serial2 <base64_2>;
> $ssl_client_serialN <base64_N>;
>
> вытаскивает соответствующие
> логин/пароль в base64 и подставляет в
> заголовок для аутентификации на back-end
> сервере.
>
> Хотелось бы узнать насколько это
> реализуемо, если реализуемо вообще. А
> если нет, то существую ли другие
> способы аутентификации пользователей
> по сертификату, ввытаскивая из него
> переменные и подставляя их для
> back-end'овой аутентифкации.
Как раз для подобных задач существует модуль map, которые
позволяет по одному значению получить другое. Как-то так должно
работать:
map $ssl_client_serial $auth_base64 {
...
}
proxy_set_header Authorization "Basic $auth_base64";
Подробности тут:
http://nginx.org/ru/docs/http/ngx_http_map_module.html
Maxim Dounin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|