Modèle de code source pour le portail Web externe (mode autonome)
Ce document décrit les exigences lors de la création d'un serveur de portail Web externe. En mode autonome, le portail Web externe ne peut être utilisé que lorsque le type d'authentification du portail est Serveur Radius externe. Si vous utilisez la fonction de portail Web externe en mode Omada Controller, vous pouvez vous référer à la FAQ916
L'image ci-dessous illustre le flux de travail entre le client sans fil, Omada EAP, le portail Web externe et le serveur Radius. Cela vous aidera à mieux comprendre les conditions requises pour établir un serveur de portail Web externe.
- Le client sans fil est connecté au SSID du réseau sans fil et tente d'accéder à Internet. Le périphérique EAP redirige la demande du client vers le portail Web externe en répondant à une réponse HTTP avec le code d'état 200 Trouvé au client. (Étape 1 et Étape 2)
- Le client envoie une requête HTTP GET au portail Web externe avec le paramètre «target = target_ap_ip & clientMac = client_mac». Par exemple, 192.168.10.104/?target=192.168.10.102&clientMac=38:71:de:31:7d:67 (étape 3)
- Le serveur de portail Web externe doit pouvoir obtenir la valeur des paramètres clientMac cible. 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.
Par exemple:
<form id = "form" method = "post">
<div> <span> nom d'utilisateur: </span> <input type = "text" name = "username" /> </div>
<div> <span> mot de passe: </span> <input type = "password" name = "password" /> </div>
<div style = "display: none"> <span> clientMac: </span> <input type = "text" id = "cid" name = "clientMac" /> </div>
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 «cid» doit être obtenue à partir de l'URL de la requête Http.
(Étape 4)
- Le formulaire doit être POST à http: // target_ap_ip / portal / auth après l' envoi . (Étape 5)
- EAP communique avec le serveur de rayon pour vérifier le nom d'utilisateur et le mot de passe. (Étape 6 et Étape 7)
- Si l'authentification est réussie, c'est-à-dire si Access-Accept est reçu du serveur de rayon, EAP renverra une page de succès intégrée ou une page Web prédéfinie selon la configuration. (Étape 8)
Le modèle html ci-dessous est une démonstration simple pour vous permettre de développer votre portail Web externe en collaboration avec EAP:
<! DOCTYPE html PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<form id = "form" method = "post">
<div> <span> nom d'utilisateur: </span> <input type = "text" name = "username" /> </div>
<div> <span> mot de passe: </span> <input type = "password" name = "password" /> </div>
<div style = "display: none"> <span> clientMac: </span> <input type = "text" id = "cid" name = "clientMac" /> </div>
<button type = "submit"> soumettre </button>
</form>
<script type = "text / javascript">
var submitUrl = "http: //" + getQueryString ("cible") + "/ portal / auth";
document.getElementById ("formulaire"). action = submitUrl;
document.getElementById ("cid"). value = getQueryString ("clientMac");
function getQueryString (nom) {
var reg = new RegExp ("(^ | &)" + nom + "= ([^ &] *) (& | $)", "i");
var r = window.location.search.substr (1) .match (reg);
if (r! = null) return unescape (r [2]); return null;
}
</script>
Remarque: lorsque vous utilisez le serveur Radius externe en mode autonome, veuillez ajouter le portail Web externe à la politique d'authentification gratuite.