Re: Кроссдоменная авторизация средставми nginx

М.А. Мохначевский tetsio.nainn at gmail.com
Tue May 14 00:59:49 UTC 2013


 if (!-e $request_filename) {
      rewrite ^(.*)$ /index.php break;
 }
мне не совсем понятно в каком контексте данный фрагмент.
если в location, то можно попробовать, наверное вынести
 location = /auth_url {
   add_header Set-Cookie "lcid=1033;Domain=.domain.com;
Path=/;Max-Age=31536000";
   rewrite ^(.*)$ domain.com persistent;
 }
выше, а если нет, то директивы if перенести внутрь location / {, а location
= /auth_url оставить в контексте server


14 мая 2013 г., 2:55 пользователь <psixozzz at gmail.com> написал:

> Здравствуйте, Васильев.
>
> Вы писали 8 мая 2013 г., 16:36:48:
>
> > Ну, если принципиально (а автор писал, что его смущает лишь
> кроссдоменность), до для авторизации можно сделать
> > отдельный server{} на IP (без домена) или даже лучше порту. Допустим,
> получим следующую схему:
> > - Заходим на 1.2.3.4:1025/domain
> > - Ставим куку
> > - Редиректим на domain.
>
> > Один из вариантов.
>
> Не  получится. Не примет браузер куку на левый домен. Даже если повесить
> отдельный сервер на ip (без домена). только что
> проверил:
>
> server {
>   listen [ip]:123;
>
>   root /home/mob/;
>   index index.html;
>
>   location = / {
>     add_header Set-Cookie  "edws=1033; expires=Wed, 21-Aug-2014 16:49:59
> GMT; path=/; domain=.domain.tld";
>     rewrite ^(.*)$ http://domain.tld permanent;
>   }
> }
>
> server {
>
>   ...
>
>   if ($cookie_edws != '1033'){
>     return 444;
>   }
>
>   ...
> }
>
> > 08.05.2013, 13:27, "Danila Shtan" <danila at shtan.ru>:
>
> >>  Проблема с auth_basic не в том, как её наследовать, а в том, что на
> domain.com, site.domain.com, trash.domain.com пользователю придется
> вводить пароли отдельно.
> >>
> >>  Д.
> >>
> >>  2013/5/8 Васильев "Zmey!" Олег <zmey1992 at ya.ru>
> >>>  Занесите auth_basic в контекст http {}, все server{} внутри
> унаследуют его (только что проверил).
> >>>
> >>>  05.05.2013, 18:23, "psixozzz at gmail.com" <psixozzz at gmail.com>:
> >>>>  Здравствуйте, Nginx-ru.
> >>>>
> >>>>  Дано:     домен     с   большим   количеством  поддоменов.  Задача:
> >>>>  открыть  доступ  только для ограниченного круга лиц, включая
> мобильные
> >>>>  клиенты.   Крайне   желательно   ограничиться   средствами  nginx,
>  не
> >>>>  вмешиваясь   в скрипты сайта. Авторизация нужна только для того,
> чтобы
> >>>>  не могли зайти люди "с улицы". Т.е. вполне подойдет что-то
> слабенькое,
> >>>>  как,  например,  факт  наличия  куки  у  клиента  и т.п. Никак не
> могу
> >>>>  придумать, как это реализовать.
> >>>>  Basic-авторизация    не   подходит,   т.к.   она   не
>   кроссдоменная.
> >>>>  Рассматривал  вариант  когда сайт не пускает никого, у кого
> >>>>  нет  определенной куки, а получить ее можно, зайдя на определенный
> урл
> >>>>  внутри   сайта.  Возникли  проблемы  с  внесением  изменений в
> текущую
> >>>>  конфигурацию nginx:
> >>>>
> >>>>   if ($cookie_edws != '1033'){
> >>>>        return 444;
> >>>>   }
> >>>>
> >>>>   location = /auth_url {
> >>>>     add_header Set-Cookie "lcid=1033;Domain=.domain.com
> ;Path=/;Max-Age=31536000";
> >>>>     rewrite ^(.*)$ domain.com persistent;
> >>>>   }
> >>>>
> >>>>   if (!-e $request_filename) {
> >>>>        rewrite ^(.*)$ /index.php break;
> >>>>   }
> >>>>
> >>>>  Таким  образом, если физически auth_url не существует, то управление
> в
> >>>>  location  = /auth_url не попадет никогда, а всегда будет передано в
> if
> >>>>  (-e  $request_filename).  Даже  если  вмешаться в структуру сайта
> (что
> >>>>  неприемлимо)  и  создать  файл  auth_url,  то в location управление
> не
> >>>>  попадет  из-за  существования  if  ($cookie_edws != '1033').
> Замкнутый
> >>>>  круг какой-то.
> >>>>
> >>>>  Может многоуважаемый All подскажет как быть?
> >>>>
> >>>>  --
> >>>>  С уважением,
> >>>>   Psixozzz                          mailto:psixozzz at gmail.com
>
>
> --
> С уважением,
>  Вадим                          mailto:psixozzz at gmail.com
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
С ув. М.А. Мохначевский
Отдел системного администрирования
ООО "Компания "СахаИнтернет НТ"
к.т. (4112)219711 доб. 927
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130514/ab04780b/attachment-0001.html>


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