Ejemplo de código y API para servidor RADIUS con portal web externo (controlador Omada 4.1.5 o superior)
Adecuado para Omada Controller 4.1.5 o superior.
Para Omada Controller 3.1.4 a 3.2.17, consulte FAQ2390
Para Omada Controller 3.0.5 o inferior, consulte FAQ916
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.
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. Para clientes inalámbricos y clientes cableados, cuando están conectados al SSID de la red inalámbrica o la red LAN cableada e intentan acceder a Internet, EAP o la puerta de enlace interceptarán la solicitud HTTP del cliente y luego la redireccionarán 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 para el cliente. (Paso 3 y Paso 4)
3. El cliente envía una solicitud HTTP/HTTPS GET a un portal web externo con el parámetro “ ?target=target_controller_ip&targetPort=target_controller_port&clientMac=client_mac&clientIp=client_ip&raidusServerIp=radius_server_ip&apMac=ap_mac&gatewayMac=gateway_mac&scheme=scheme&ssidName==ssid_name&radioId=radio_id (0 para radio 2.4G, 1 para radio 5G )&vid=vid&originUrl=redirecturl (si no configuró la URL de redirección después de que los clientes inalámbricos/alámbricos pasaran la autenticación del portal, la URL de redirección predeterminada depende de los clientes inalámbricos)”.
Por ejemplo: "https://www.externalportal.com/?target=172.30.30.113&targetPort=8088&clientMac=F8-1E-DF-AA-AA-AA&clientIP=172.30.30.103&raidusServerIp=172.30.30.120&apMac=AC-84-C6-BB- BB-BB&GatewayMac=172.30.0.1&scheme=https&ssidName=eap_test&radioId=1&originalUrl=https%3A%2F%2Fwww.tp-link.com ” (Paso 5)
4. El servidor del portal web externo debe poder obtener el valor de los parámetros clientMac, clientIp, apMac, gatewayMac, ssidName, radioId, vid, Scheme, originUrl . Luego, el servidor del portal web externo debe redirigir al cliente al controlador con la información de nombre de usuario, contraseña, clientMac, clientIp, apMac, gatewayMac, ssidName, esquema, vid, radioId, originUrl. (Paso 6)
5. El cliente envía paquetes HTTP/HTTPS POST a (http) https://target_controller_ip:targetport/portal/radius/auth (o radius/browserauth) con formato JSON (o formulario HTML) en el cuerpo del mensaje HTTP después de enviarlo. El valor predeterminado del puerto de destino del portal, “targetport”, es 8843 (Paso 7). Para conocer la diferencia entre radius/auth y radius/browserauth, consulte laparte Demo y api .
Nota: Desde Controlle r 5.0, si se usa la API "radius/auth", el campo "Access-Control-Allow-Origin:URL" debe enviarse en el encabezado HTTP para mejorar la seguridad durante el uso compartido de recursos de origen cruzado (CORS - Cross-Origin Resource Sharing) . Por ejemplo, si el nombre de dominio de su portal web externo es " www.tplinkportal.com ", debe agregar "Access-Control-Allow-Origin: https://www.tplinkportal.com". Descargue la demostración al final del artículo como referencia.
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)formulario
7. Si se pasa la autenticación, es decir, se recibe Access-Accept del servidor Radius, el controlador Omada redirigirá una página de éxito integrada o una página web predefinida de acuerdo con la configuración de los clientes. (Paso 10)
Demo y API:
De 4.1.5 a 5.1.0, proporcionamos api: target_controller_ip:targetport/portal/radius/auth con envío en formato JSON,
La siguiente plantilla html es una demostración simple para que pueda desarrollar su Portal web externo trabajando con el controlador Omada usando el formato JSON:
Demostración de servidor web externo (JSON)
Cuando se usa HTTPS en el lado del portal web y HTTP en el lado del controlador de Omada, el acceso a AJAX causará problemas de acceso entre dominios de CORS y será interceptado por el navegador, por lo que proporcionamos el formulario HTML que envía la API desde Omada Controller 5.3.1 : target_controller_ip:targetport/portal/radius/browserauth , y realiza el salto de página en el back-end
La siguiente plantilla html es otra demostración que usa un formulario HTML:
Demostración de servidor web externo (formulario HTML)
Nota:
1. Si está utilizando el controlador basado en la nube de Omada (CBC), solo se admite HTTPS POST a la API "browserauth" con formulario HTML por razones de seguridad. Para CBC, utilice el dominio de su CBC en lugar de "target_controller_ip:targetport" en la URL que apunta a la API "browserauth".
Por ejemplo, para el CBC con URL en esta figura, la API sería " https://aps1-omada-controller.tplinkcloud.com/portal/radius/browserauth "
2. Si su controlador (4.1.5 o superior) se actualiza desde el controlador 3. xx, tenga en cuenta que hemos cambiado algunos "Nombres" de los parámetros.
Nombre (V3.x) |
Nombre (V4.x) |
Tipo |
Observación |
clientMac |
clientMac |
string |
client MAC address |
clientIp |
clientIp |
string |
client IP address |
ap |
apMac |
string |
AP MAC address(only for ap) |
|
gatewayMac |
string |
Gateway MAC address (only for wired auth) |
|
vid |
integer |
vid (only for wired auth) |
ssid |
ssidName |
string |
ssid name |
radioId |
radioId |
integer |
0: 2.4GHz, 1: 5GHz(only for ap) |
/ |
authType |
integer |
The actual authentication type, only supports External RADIUS and Hotspot RADIUS authentication methods. 2: External RADIUS; 8: Hotspot RADIUS |
redirectUrl |
originUrl |
string |
redirectUrl |
username |
username |
string |
authentication username |
password |
password |
string |
authentication password |
Tenga en cuenta que apMac y gatewayMac no existen en la misma solicitud, cuando los clientes conectados se autentican, deje en blanco el apMac
3. En el paso 7, si su formulario tiene caracteres que no son ASCII (por ejemplo, el nombre del SSID es chino u otro idioma), se debe usar la codificación UTF-8 al enviar HTTP/HTTPS POST al controlador.
4. Si elige el acceso ajax, tenga en cuenta el campo "Access-Control-Allow-Origin:URL" para Controller 5.0 y superior.
5. Se recomienda la demostración de formulario HTML y la API de autenticación de navegador/radio.
Apéndice: documento API de auth y browserauth
Información básica
Ruta : /portal/radio/autorización
Método : POST
Parámetros de solicitud
Encabezados
Parámetros |
Valor |
Requerido |
Tipo de contenido (Content-Type) |
aplicación/json |
Sí |
Consulta
Parámetros |
Requerido |
Descripción |
key |
Sí |
Clave AES cifrada por clave pública RSA, RSA/ECB/PKCS1Padding. Los primeros 16 bytes son la clave y los últimos 16 bytes son el IV. |
Cuerpo
Parámetros |
Tipo |
Requerido |
Descripción |
clientMac |
string |
Yes |
client MAC address |
clientIP |
String |
|
Client IP address |
apMac |
string |
Yes |
AP MAC address |
gatewayMac |
string |
Yes |
gateway MAC address |
ssidName |
string |
Yes |
SSID name |
vid |
integer |
Yes |
VLAN ID |
radioId |
integer |
Yes |
0: 2.4GHz 1: 5GHz |
authType | integer | Yes |
Esta entrada es el tipo de autenticación en tiempo real. Solo se admiten las dos opciones siguientes: 2: RADIUS externo 8: Hotspot RADIUS |
originUrl |
string |
|
Redirect URL |
username |
string |
Yes |
The username for authentication |
password |
string |
Yes |
The password for authentication |
Parámetros de respuesta
Parámetros |
Tipo |
Requerido |
Descripción |
errorCode |
integer |
Yes |
Error Code |
Información básica
Ruta : /portal/radius/browserauth
Método : POST
Parámetros de solicitud
Encabezados
Parámetros |
Valor |
Requerido |
Content-Type |
application/x-www-form-urlencoded |
Sí |
Parámetros de ruta
Parámetros |
Tipo |
Requerido |
Descripción |
clientMac |
string |
Yes |
client MAC address |
clientIP |
String |
|
Client IP address |
apMac |
string |
Yes |
AP MAC address |
gatewayMac |
string |
Yes |
gateway MAC address |
ssidName |
string |
Yes |
SSID name |
vid |
integer |
Yes |
VLAN ID |
radioId |
integer |
Yes |
0: 2.4GHz 1: 5GHz |
authType |
integer |
Yes |
This entry is the realtime authentication type. Only the following two options are supported: 2: External RADIUS 8: Hotspot RADIUS |
originUrl |
string |
|
Redirect URL |
username |
string |
Yes |
The username for authentication |
password |
string |
Yes |
The password for authentication |
Parámetros de respuesta
Parámetros |
Tipo |
Requerido |
Descripción |
errorCode |
integer |
Yes |
Error Code |