web-dev-qa-db-fra.com

Comment créer une page de connexion Wi-Fi popup

Lorsque je vais dans un endroit avec un hotspot WiFi (comme Panera Bread) et que je me connecte avec mon iPhone, la page de connexion au hotspot apparaît sous forme de popup. Autrement dit, quelle que soit l'application que j'utilise ou la page Web sur laquelle je me trouve, la page de connexion défile vers le bas, demande mes informations de connexion, puis disparaît.

Mais dans certains autres hotspots, je n'obtiens pas la page de connexion avant d'aller sur Safari et d'essayer de charger une page Web.

Qu'est-ce que l'iPhone cherche à faire apparaître la page de connexion sur certains points d'accès et pas sur d'autres? Existe-t-il une balise meta HTML spéciale? Ou est-ce lié à la façon dont la redirection est mise en œuvre?

29
Barry Brown

J'ai réussi à trouver le terme correct pour ce type d'authentification: "Portail captif". Poinçonnage dans Captive Portal iPhone dans Google a révélé quelques détails techniques de ces pages: n , deux , trois .

Pour implémenter une page de connexion Wi-Fi popup:

  1. Demande DNS pour www.Apple.com ne doit pas échouer
  2. Demande HTTP pour http://www.Apple.com/library/test/success.html avec l'agent utilisateur spécial CaptiveNetworkSupport/1.0 wispr ne doit pas renvoyer Success.

Je n'ai pas testé cela, mais ça sonne à peu près juste.


Les commentaires ci-dessous mentionnent que iOS 7 se comporte différemment et peut interroger plusieurs serveurs. Je n'ai pas testé cela. Le plus simple serait de simplement rediriger toutes les communications HTTP vers votre page de connexion et de bloquer toutes les communications non HTTP.

Détection de portail captif de Microsoft tilise quelque chose de similaire au comportement pré-iOS7: son indicateur d'état de connectivité réseau tente de contacter - http://www.msftncsi.com . Windows 8 et 8.1 également inclut la prise en charge de WISPr .

Détection de portail captif d'Android , depuis AOSP 4.0.1, tente de contacter http: // clients3.google.com/generate_204 ou http://www.google.com/blank.html .

Donc, pour être aussi universel que possible, vous voudrez simplement bloquer toutes les communications, à l'exception de l'authentification, et inclure le support WISPr sur la page de connexion.

Je dirais "allez avec une authentification appropriée sur votre réseau" - quelque chose d'universel comme PEAP + MSCHAPv2 - mais Windows rend très difficile la configuration de vos utilisateurs. Je ne sais pas qui a pensé que "Utiliser vos détails d'authentification Windows" fait un défaut sain sur les machines qui ne font pas partie d'un réseau de domaine d'entreprise, ni même pourquoi "Vérifier la validité du certificat" est un défaut sain, comme la plupart des réseaux le font pas pensez à obtenir un certificat approprié comme priorité.

36
Ivan Vučica

iOS 6 a apparemment corrigé WPA2 EAP car il fait soudainement apparaître la fenêtre de connexion.

Le WiFi public de nos entreprises nécessite d'accepter les termes concernant la surveillance, etc. .

Aujourd'hui, j'ai mis à jour vers iOS 6 et j'ai été agréablement surpris de voir la fenêtre de connexion glisser du bas et de me permettre de cliquer sur le bouton Accepter sans même ouvrir Safari.

1
James Brickley