Re: auth request контроль числа прошедих авторизацию

Maxim Dounin mdounin на mdounin.ru
Чт Ноя 19 13:16:05 UTC 2015


Hello!

On Thu, Nov 19, 2015 at 03:26:03AM -0500, Magikanin wrote:

> Добрый день.
> 
> Есть backend-сайт. Перед ним установил nginx в качестве прокси. Для доступа
> на сайт необходимо пройти авторизацию. Авторизация организована с помощью
> auth_request на отдельном ресурсе не связанном с backend.
> Вот конфиг, который "работает" сейчас:
> -----
>     location / {
>         auth_request /auth;
>         proxy_pass http://backend/;
>     }
> 
>     # Служебные locations
>     location /auth {
>         internal;
>         proxy_pass_request_body off;
>         proxy_set_header Content-Length "";
>         proxy_pass http://127.0.0.1:5000/;
>     }
> -----
> 
> Возникло 2 задачи:
> 1) Организовать уникальность авторизованных пользователей. Т.е. если есть
> авторизованный пользователь с логином USER1, то при попытке захода другого
> пользователя с такимже логином будет выдаваться ошибка.
> 
> 2) На proxy нужно иметь возможность сбросить авторизацию конкретного
> пользователя (заставить его авторизоваться заново).
> 
> Возможно ли это реализовать с помощью nginx? Изменять backend-сайт
> возможности нет (система закрытая), т.е. мне достпны только настройки на
> проксирующем сервере.

Это можно сделать в авторизационном сервисе.  А nginx всё это 
увидит и будет корректно обрабатывать через auth_request.

Если авторизационный сервис тоже внешний и не может меняться - 
сделайте поверх него свой, в котором уже обращайтесь к внешнему.

-- 
Maxim Dounin
http://nginx.org/



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