Plantilla de código fuente para portal web externo (Controller 3.1.4 o superior)

Requisito de la aplicación de usuario
Actualizado12-13-2022 07:34:49 AM 42700
Este artículo se aplica a: 

Adecuado para Omada Controller V3.1.4 o superior.

Para Omada Controller V3.0.5 o anterior, consulte FAQ916

Para Omada Controller v4.1.5 o superior, consulte FAQ2912

Este documento describe los requisitos al establecer un servidor de portal web externo. En Omada Controller, el Portal web externo solo se puede usar cuando el tipo de autenticación del portal es Servidor Radius externo. Para saber cómo configurar la autenticación del servidor Radius externo, consulte la pregunta frecuente 896 (sección 4 del paso 2).

La siguiente imagen muestra el flujo de trabajo entre el cliente inalámbrico, EAP, el controlador Omada, el portal web externo y el servidor Radius. Le ayudará a comprender mejor los requisitos para establecer un servidor de portal web externo.

 

1. El cliente inalámbrico está conectado al SSID de la red inalámbrica e intenta acceder a Internet. El dispositivo EAP intercepta la solicitud HTTP del cliente y luego la redirige al controlador Omada. (Paso 1 y Paso 2)

2.El controlador de Omada luego redirige la solicitud del cliente a la página del portal externo respondiendo una respuesta HTTP con el código de estado 302 Encontrado al cliente. (Paso 3 y Paso 4)

3.El cliente envía una solicitud HTTP GET a un portal web externo con un parámetro“?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 for 2.4G radio, 1 for 5G radio)&redirectUrl=redirecturl(si no configuró la URL de redirección después de que los clientes inalámbricos pasaran la autenticación del portal, la URL de redirección predeterminada depende de los clientes inalámbricos)”.
por ejemplo
, “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“ (Step 5)

4.El servidor de portal web externo debería poder obtener el valor de los parámetros clientMac, clientIp, ap, ssid, radioId, redirectUrl. Luego, el servidor del portal web externo debería devolver una página con un formulario. Este formulario recopilará la información de username, password, clientMac, clientIp, ap, ssid, radioId, redirectUrl

Por Ejemplo:

 

<form id="form" method=”get”>  (Controller 3.1.13 or above supports method=”post”)

    <div><span>username:</span><input type="text" id="username" name="username"/> </div>

    <div><span>password:</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">submit</button>

</form>

Tenga en cuenta que la "id" de estos elementos en su formulario debe ser la misma que en este ejemplo. El método para obtener el valor de "username" y "password" puede definirlo usted mismo, pero debe obtener el valor de "clientMac", "clientIp", "ap", "ssid", "radioId", "redirectUrl" de la URL de la solicitud Http.

(Paso 6)

5.El cliente envía paquetes HTTP GET con el formulario para http://target_controller_ip:targetport/portal/radius/auth after submitting. (Step7, controlador 3.1.13 o superior compatible method=”post” )

6.El controlador Omada se comunica con el servidor Radius para verificar el nombre de usuario y la contraseña. (Paso 8 y Paso 9)

7.Si se pasa la autenticación, es decir, se recibe Access-Accept desde el servidor de Radius, el controlador de Omada redirigirá una página de éxito integrada o una página web predefinida según la configuración a los clientes. (Paso 10)

 

La siguiente plantilla html es una demostración simple para que usted desarrolle su Portal Web Externo trabajando con el Controlador Omada:

 

<!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 or above supports method="post")

    <div><span>username:</span><input type="text" id="username" name="username"/> </div>

    <div><span>password:</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">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");

 

function getQueryString(name) {

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

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

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

}

</script>

 

 

 

 

¿Es útil esta faq?

Sus comentarios nos ayudan a mejorar este sitio.

De United States?

Obtener productos, eventos y servicios para su región.