Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Кроссдоменная авторизация средставми nginx
- To: Васильев "Zmey!" Олег <nginx-ru@xxxxxxxxx>
- Subject: Re: Кроссдоменная авторизация средставми nginx
- From: psixozzz@xxxxxxxxx
- Date: Mon, 13 May 2013 22:55:27 +0600
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:date:from:x-priority:message-id:to:subject:in-reply-to :references:mime-version:content-type:content-transfer-encoding; bh=4X89KBix+xCgSBY+62bU9WxuliY7qAkF+To3hZEW+do=; b=D2H+H/Xn+04/1b963onQvEntTUPhv3VI7c2ir+xCsjhCYE8vTvsmrAjZJ1lCm2//Ox XhtC/B+lRQmPHA0uOMLMaiDgdUAVJO4OeWwziqy7IOlvy+ILLwVaxo3ogKDgvguRoNrv ZihBe5pi3/yMcHP5LWd+lNtWW1dsuuVaayogV1kSC50+3zQQ6WwZBYSl9ECQSZ7+dKNb 3EJ0t5MxwyybPcq7tQMCp/VYIlOsi0+ycLpwSS1omE9CjMOYpkFtO9DvVu8J9OtFBibH IX/0s3gvJFoWU5uiRUFkjRhVSnmCFuMCNMbQ4x3iHVwAHMEYSnAtZRJvfoCur7tsPZ+k ZLBA==
- In-reply-to: <1296271368009408@web16f.yandex.ru>
- References: <15710675846.20130505202257@gmail.com> <1370921368000486@web13h.yandex.ru> <CALUn_U7OH=C-oewLqc3Frm0TXKsBbHZ6Fyvsyqv-zrh8w1L+DA@mail.gmail.com> <1296271368009408@web16f.yandex.ru>
Здравствуйте, Васильев.
Вы писали 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
|