WISRp и UAM средствами nginx
Лапочкин Константин
kostenl at gmail.com
Fri Oct 18 09:28:46 UTC 2013
Добрый день. Используем Nginx для редиректа на captive-портав с наших wifi-hotspot’ов. Пользователь, подключившись к не защищённой сети при любом обращении в интернет по протоколам http, https перенаправляется на наш портал, где проходит авторизацию (либо получает гостевой доступ). Возникла задача: что бы на клиентских устройствах с iOS (iPhone, iPad) при подключении к нашей сети всплывало pop-UP окно с нашим порталом. Работает это через протокол wisrp, окно называется uam(unified authorization method). Суть метода в том, что при подключении к сети ios запрашивает ссылку с «User-Agent: CaptiveNetworkSupport-200.1 wispr». Если он получает на это 302, то, теоретически, должно возникнуть окошко со страницей, на которую перенаправляет 302-й код. Однако, это в nginx не работает. Проверяли, что работает на microtik. Cнимали дамп пакетов c микротика, увидели следующее:
GET /library/test/success.html HTTP/1.0
Host: www.apple.com
User-Agent: CaptiveNetworkSupport-200.1 wispr
Connection: close
HTTP/1.1 302 Hotspot login required
Cache-Control: no-cache
Content-Length: 135
Content-Type: text/html
Date: Fri, 11 Oct 2013 06:37:38 GMT
Expires: 0
Location: http://10.0.2.1/login?dst=http%3A%2F%2Fwww.apple.com%2Flibrary%2Ftest%2Fsuccess.html
<html>
<head><title>Error 302: Hotspot login required</title></head>
<body>
<h1>Error 302: Hotspot login required</h1>
</body>
</html>
В случае же работы через портал сообщение следующее:
GET /UMzURpsu3rm/tumgdbEHylH.html HTTP/1.0
Host: www.appleiphonecell.com
Connection: close
User-Agent: CaptiveNetworkSupport-277 wispr
HTTP/1.1 302 Moved Temporarily
Server: nginx/0.7.67
Date: Fri, 11 Oct 2013 07:37:01 GMT
Content-Type: text/html
Content-Length: 161
Connection: close
Location: https://perm.wifi.domru.ru/index.php?request_uri=http://www.appleiphonecell.com/UMzURpsu3rm/tumgdbEHylH.html
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>nginx/0.7.67</center>
</body>
</html>
Что сделал: пробовал через nc слать заголовки из дампа микротика – работает, окно появляется. Пересобрал ngnix, что бы заменить 302 Moved Temporarily на 302 Hotspot login required – не помогло.
Есть у кого-то опыт настройки подобных вещей через ngnix?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20131018/4a19bdeb/attachment.html>
Подробная информация о списке рассылки nginx-ru