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

Knowledgebase
FAQ
Portal
07-06-2023
100

Convient pour Omada Controller 3.1.4 à 3.2.17.

Pour Omada Controller 3.0.5 ou inférieur, veuillez vous référer à FAQ916

Pour Omada Controller 4.1.5 ou supérieur, veuillez vous référer à FAQ2912

Ce document décrit les exigences lors de l'établissement d'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 un serveur Radius externe. Pour savoir comment configurer l'authentification du serveur Radius externe , veuillez vous reporter à 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 d'é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 du portail externe en répondant une réponse HTTP avec le code d'état 302 Found 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'a 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%2Fwww.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 recueillera les informations de nom d'utilisateur, mot de passe, clientMac, clientIp, ap, ssid, radioId, redirectUrl

Par exemple:

 

<form id="form" method=”get”> ( Controller 3.1.13 ou supérieur prend en charge method=”post” )

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

<div><span>mot de passe :</span><input type="password" id="password" name="password"/></div>

<div style="display:none"><input type="text" id="clientMac" name="clientMac" /></div>

<div style="display:none"><input name="clientIp" id="clientIp"/></div>

<div style="display:none"><input name="ap" id="ap"/></div>

<div style="display:none"><input name="ssid" id="ssid"/></div>

<div style="display:none"><input name="radioId" id="radioId"/></div>

<div style="display:none"><input name="redirectUrl" id="redirectUrl"/></div>

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

</form>

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

(Étape 6)

5.Le client envoie des paquets HTTP GET avec le formulaire à http://target_controller_ip:targetport/portal/radius/auth après la soumission. (Step7, Controller 3.1.13 ou supérieur prend en charge method="post" )

6.Omada Controller communique avec le serveur Radius pour vérifier le nom d'utilisateur et le mot de passe. (Étape 8 et Étape 9)

7.Si l'authentification est réussie, c'est-à-dire si 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 vers les clients. (Étape 10)

 

Le modèle html ci-dessous est une démonstration simple pour vous permettre de développer votre portail Web externe en collaboration avec 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="color:red"></div>

<form id="form" method="get"> (Controller 3.1.13 ou supérieur prend en charge method="post")

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

<div><span>mot de passe :</span><input type="password" id="password" name="password"/></div>

<div style="display:none"><input type="text" id="clientMac" name="clientMac" /></div>

<div style="display:none"><input name="clientIp" id="clientIp"/></div>

<div style="display:none"><input name="ap" id="ap"/></div>

<div style="display:none"><input name="ssid" id="ssid"/></div>

<div style="display:none"><input name="radioId" id="radioId"/></div>

<div style="display:none"><input name="redirectUrl" id="redirectUrl"/></div>

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

</form>

 

<type de script="texte/javascript">

var errorHint = getQueryString("errorHint")

si (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");

 

function getQueryString(nom) {

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

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

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

}

</script>

 

 

 

 

Veuillez noter ce document

Documents connexes