ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Кроссдоменная авторизация средставми nginx
  • From: М.А. Мохначевский <tetsio.nainn@xxxxxxxxx>
  • Date: Tue, 14 May 2013 10:59:49 +1000
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:content-type; bh=yyGzs4hm6Qom185Ae4GbyrontRuQaMCuir1JwYiQ0pI=; b=tcJJWJCvpBw0oAbxeLnBKFH+fHVtT4vDfyxc3cbu/2yzmVHwyHCjqib6S1ZoLvnQCU 2+D5plyo5WJf27JaxyWST416bGI+izloXCfxGPuxr+MS0ctk6gGd4s0PFEQL0bma+8oB a9w5bBoMGTPJS++9+uiiM0tgzSPWDmwSmlUoPqZrwx5b9AtuyiI6aYJkZfl7qsybZ4os 4ImWoYhUv1hkDtxydJFOlgwMPOmp1tQ/xyaL57ZmNm+ubQGOyukkvKttycfOQmxvqafH TftkK0WVaYfUOxMcZt74AqDhyg67YmUC+mLttWtd6wSb0hfJDeBzF2uaMO+0l2CwOrqj JdLA==
  • In-reply-to: <908701210.20130513225527@gmail.com>
  • References: <15710675846.20130505202257@gmail.com> <1370921368000486@web13h.yandex.ru> <CALUn_U7OH=C-oewLqc3Frm0TXKsBbHZ6Fyvsyqv-zrh8w1L+DA@mail.gmail.com> <1296271368009408@web16f.yandex.ru> <908701210.20130513225527@gmail.com>

 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@xxxxxxxxx> написал:
Здравствуйте, Васильев.

Вы писали 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@xxxxxxxx>:

>>  Проблема с auth_basic не в том, как её наследовать, а в том, что на domain.com, site.domain.com, trash.domain.com пользователю придется вводить пароли отдельно.
>>
>>  Д.
>>
>>  2013/5/8 Васильев "Zmey!" Олег <zmey1992@xxxxx>
>>>  Занесите auth_basic в контекст http {}, все server{} внутри унаследуют его (только что проверил).
>>>
>>>  05.05.2013, 18:23, "psixozzz@xxxxxxxxx" <psixozzz@xxxxxxxxx>:
>>>>  Здравствуйте, 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@xxxxxxxxx


--
С уважением,
 Вадим                          mailto:psixozzz@xxxxxxxxx

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru



--
С ув. М.А. Мохначевский
Отдел системного администрирования
ООО "Компания "СахаИнтернет НТ"
к.т. (4112)219711 доб. 927
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.