Подтвердить что ты не робот

Как создать страницу входа в всплывающее окно WiFi

Когда я перехожу в место с точкой доступа WiFi (например, Panera Bread) и подключаюсь к моему iPhone, страница входа в Hotspot появляется как всплывающее окно. То есть независимо от того, какое приложение я запускаю или на какой веб-странице я нахожусь, страница входа в систему прокручивается снизу, запрашивает мои учетные данные и затем исчезает.

Но в некоторых других горячих точках я не получаю страницу входа, пока я не перейду в Safari и не попытаюсь загрузить веб-страницу.

Что ищет iPhone, который заставляет его всплывать страницу входа в некоторые горячие точки, а не другие? Есть ли специальный метатег HTML? Или это связано с тем, как осуществляется перенаправление?

4b9b3361

Ответ 1

Мне удалось выяснить правильный термин для этого типа аутентификации: "Captive portal". Прошивка в Captive Portal iPhone в Google вывела несколько технических деталей с этих страниц: one, два, три.

Чтобы реализовать страницу входа в всплывающее окно Wi-Fi:

  • Запрос DNS для www.apple.com не должен терпеть неудачу
  • HTTP-запрос для http://www.apple.com/library/test/success.html со специальным пользовательским агентом CaptiveNetworkSupport/1.0 wispr не должен возвращать Success.

Я не тестировал это, но это звучит правильно.


Комментарии ниже упоминают, что iOS 7 ведет себя по-другому и может запрашивать несколько серверов. Я не тестировал это. Так проще всего было бы просто перенаправить все HTTP-сообщения на вашу страницу входа в систему и заблокировать все сообщения, отличные от HTTP.

Microsoft обнаружение портативного портала использует что-то подобное для поведения pre-iOS7: его индикатор состояния сетевого подключения пытается обратитесь http://www.msftncsi.com. Windows 8 и 8.1 также включают поддержку WISPr.

Android обнаружение портативного портала, с AOSP 4.0.1, пытается связаться http://clients3.google.com/generate_204 или http://www.google.com/blank.html.

Чтобы быть как можно более универсальным, вам нужно просто заблокировать все коммуникации, кроме аутентификации, и включить поддержку WISPr на странице входа.

Я бы сказал: "Идите с надлежащей аутентификацией в своей сети" - что-то универсальное, такое как PEAP + MSCHAPv2, но Windows делает очень болезненным для ваших пользователей его настройку. Я не знаю, кто думал, что "Использовать ваши данные проверки подлинности Windows" делает разумным по умолчанию на машинах, которые не являются частью корпоративной сети домена, или даже почему "Проверить достоверность сертификата" является нормальным по умолчанию, поскольку большинство сетей не считают получение приоритетного сертификата.

Ответ 2

iOS 6, по-видимому, зафиксировал WPA2 EAP, когда он внезапно появился в окне входа в систему.

Наши общедоступные WiFi компании требуют принятия условий мониторинга и т.д. Мне всегда приходилось вручную открывать Safari на iPhone или iPad и перемещаться куда-то, перенаправляя его на внутреннюю страницу принятия решений, и когда вы нажимаете кнопку "Принять", она будет идти туда, где вы первоначально возглавлялись.

Сегодня я обновился до iOS 6 и был с удивлением удивлен, увидев, что окно входа в систему соскальзывает снизу и позволяет мне нажать кнопку "Принять", даже не открыв Safari.

Ответ 3

Я подозреваю, что при появлении страницы входа в систему Wi-Fi использует EAP. Это протокол Wi-Fi для аутентификации. В случае, когда вам нужно перейти на веб-страницу, аутентификация будет представлять собой пользовательский доступ, реализованный сервером (то есть на более высоком уровне чем EAP).