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