Modèle de code source pour le portail Web externe (contrôleur 3.1.4 ou supérieur)

Application utilisateur requise
Mis à jour04-10-2019 07:36:41 AM 40639
Ce document concerne les modèles suivants : 

Convient pour Omada Controller V3.1.4 ou supérieur.

Pour Omada Controller version 3.0.5 ou inférieure, veuillez vous reporter à FAQ916.

 

Ce document décrit la configuration requise pour établir un serveur de portail Web externe. Dans Omada Controller, le portail Web externe ne peut être utilisé que lorsque le type d'authentification du portail est Serveur Radius externe . Pour savoir comment configurer l' authentification du serveur Radius externe , reportez-vous à la FAQ 896 (section 4 de l'étape 2).

 

L'image ci-dessous illustre le flux de travail entre le client sans fil, EAP, le contrôleur Omada, le portail Web externe et le serveur Radius. Cela vous aidera à mieux comprendre les exigences relatives à l'établissement d'un serveur de portail Web externe.

 

1.Le client sans fil est connecté au SSID du réseau sans fil et tente d'accéder à Internet. Le périphérique EAP intercepte la requête HTTP du client, puis la redirige vers le contrôleur Omada. (Étape 1 et étape 2)

2.Le contrôleur Omada redirige ensuite la demande du client vers la page de portail externe en répondant à une réponse HTTP avec le code d'état 302 Trouvé au client. (Étape 3 et étape 4)

3.Le client envoie une requête HTTP GET au portail Web externe avec le paramètre "? Target = target_controller_ip & targetPort = target_controller_port & clientMac = client_mac & clientIp = client_ip & raidusServerIp = radius_server_ip & ap =

ap_mac & ssid = ssid & radioId = radio_id (0 pour la radio 2.4G, 1 pour la radio 5G) & redirectUrl = redirecturl (si vous n'avez pas défini l'URL de redirection après que les clients sans fil ont passé l'authentification du portail, l'URL de redirection par défaut dépend des clients sans fil) ”. Par exemple, "http://172.30.30.113?target=172.30.30.113&targetPort=8088&clientMac=F8-1E-DF-AA-AA-AA&clientIP=172.30.30.103&raidusServerIp=172.30.30.120&ap=AC-84-C6-BB -BB-BB & ssid = eap_test & radioId = 1 & redirectUrl = https% 3A% 2F% 2F  www.tp-link.com (étape 5) 

4. Le serveur de portail Web externe doit pouvoir obtenir la valeur des paramètres clientMac, clientIp, ap, ssid, radioId, redirectUrl . Ensuite, le serveur de portail Web externe doit renvoyer une page avec un formulaire. Ce formulaire collectera les informations de nom d'utilisateur, mot de passe, clientMac, clientIp, ap, ssid, radioId, redirectUrl

Par exemple:

 

<form id = "form">

    <div> <span> nom d'utilisateur: </ span> <input type = "text" id = "nomutilisateur" name = "nomutilisateur" /> </ div>

 

    <div> <span> mot de passe: </ span> <type d'entrée = "mot de passe" id = "mot de passe" name = "mot de passe" /> </ div>

 

    <div style = "display: none"> <type d'entrée = "text" id = "clientMac" name = "clientMac" /> </ div>

          <div style = "display: none"> <nom d'entrée = "clientIp" id = "clientIp" /> </ div>

          <div style = "display: none"> <nom d'entrée = "ap" id = "ap" /> </ div>

          <div style = "display: none"> <nom d'entrée = "ssid" id = "ssid" /> </ div>

          <div style = "display: none"> <nom d'entrée = "radioId" id = "radioId" /> </ div>

          <div style = "display: none"> <nom d'entrée = "redirectUrl" id = "redirectUrl" /> </ div>

          <button type = "submit"> submit </ button>

</ form>

 

Veuillez noter que le "id" de ces éléments dans votre formulaire doit être identique à cet exemple. La méthode pour obtenir la valeur de "nom d'utilisateur" et "mot de passe" peut être définie par vous-même, mais la valeur de "clientMac", "clientIp", "ap", "ssid", "radioId", "redirectUrl" doit être obtenue. depuis l'URL de la demande HTTP.

(Étape 6)

  1. Le client envoie les paquets HTTP GET avec le formulaire à http: // target_controller_ip: targetport / portal / radius / auth après la soumission. (Step7)
  2. Omada Controller communique avec le serveur Radius pour vérifier le nom d'utilisateur et le mot de passe. (Étape 8 et étape 9)
  3. Si l'authentification est réussie, c'est-à-dire que Access-Accept est reçu du serveur Radius, Omada Controller redirigera une page de réussite intégrée ou une page Web prédéfinie en fonction de la configuration des clients. (Étape 10)

 

Le modèle html ci-dessous est une simple démonstration permettant de développer votre portail Web externe en utilisant Omada Controller:

 

 

<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<meta http-equiv = "Content-Type" content = "text / html; charset = utf-8" />

<div id = "errorHint" style = "couleur: rouge"> </ div>

<form id = "form">

    <div> <span> nom d'utilisateur: </ span> <input type = "text" id = "nomutilisateur" name = "nomutilisateur" /> </ div>

 

    <div> <span> mot de passe: </ span> <type d'entrée = "mot de passe" id = "mot de passe" name = "mot de passe" /> </ div>

 

    <div style = "display: none"> <type d'entrée = "text" id = "clientMac" name = "clientMac" /> </ div>

          <div style = "display: none"> <nom d'entrée = "clientIp" id = "clientIp" /> </ div>

          <div style = "display: none"> <nom d'entrée = "ap" id = "ap" /> </ div>

          <div style = "display: none"> <nom d'entrée = "ssid" id = "ssid" /> </ div>

          <div style = "display: none"> <nom d'entrée = "radioId" id = "radioId" /> </ div>

          <div style = "display: none"> <nom d'entrée = "redirectUrl" id = "redirectUrl" /> </ div>

          <button type = "submit"> submit </ button>

</ form>

 

 

 

<script type = "text / javascript">

var errorHint = getQueryString ("errorHint")

if (errorHint! = null) {

          document.getElementById ("errorHint"). innerHTML = errorHint.replace (new RegExp ('\\ +', 'g'), '');

}

var submitUrl = "http: //" + getQueryString ("target") + ":" + getQueryString ("targetPort") + "/ portal / radius / auth";

document.getElementById ("form"). action = submitUrl;

 

document.getElementById ("clientMac"). value = getQueryString ("clientMac");

document.getElementById ("clientIp"). value = getQueryString ("clientIp");

document.getElementById ("ap"). value = getQueryString ("ap");

document.getElementById ("ssid"). value = getQueryString ("ssid");

document.getElementById ("radioId"). value = getQueryString ("radioId");

document.getElementById ("redirectUrl"). value = getQueryString ("redirectUrl");

 

fonction getQueryString (nom) {

 

    var reg = new RegExp ("(^ | &)" + nom + "= ([^ &] *) (& | $)", "i");

 

    var r = window.location.search.substr (1) .match (reg);

 

    if (r! = null) renvoie unescape (r [2]); return null;

 

}

 

</ script>

Est-ce que ce FAQ a été utile ?

Vos commentaires nous aideront à améliorer ce site.

De United States?

Infos produits, événements, services pour votre pays.