Modèle de code source pour le portail Web externe (Controller 4.1.5 ou supérieur)
Convient pour Omada Controller 4.1.5 ou supérieur.
Pour Omada Controller 3.1.4 à 3.2.17, veuillez vous référer à la FAQ2390
Pour Omada Controller 3.0.5 ou version antérieure, veuillez vous référer à la FAQ916
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 External Radius Server.
L'image ci-dessous représente le flux de travail entre le client sans fil, l'EAP, le contrôleur Omada, le portail Web externe et le serveur Radius. Il vous aidera à mieux comprendre les exigences liées à la création d'un serveur de portail Web externe.
1. Pour les clients sans fil et les clients câblés, lorsqu'ils sont connectés au SSID du réseau sans fil ou du réseau LAN câblé et tentent d'accéder à Internet, l'EAP ou la passerelle 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 Trouvé au client. (Étape 3 et étape 4)
3. Le client envoie une requête HTTP/HTTPS 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&apMac=ap_mac&gatewayMac=gateway_mac&scheme=scheme&ssidName==ssid_name&radioId=radio_id (0 pour la radio 2,4G, 1 pour la radio 5G )&vid=vid&originUrl=redirecturl (si vous n'avez pas défini l'URL de redirection après que les clients sans fil/câblés ont passé l'authentification du portail, l'URL de redirection par défaut dépend des clients sans fil) ».
Par exemple : « 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 » (Étape 5 )
4. Le serveur de portail Web externe doit pouvoir obtenir la valeur des paramètres clientMac, clientIp, apMac, gatewayMac, ssidName, radioId, vid, schéma, originUrl . Ensuite, le serveur de portail Web externe doit rediriger le client vers le contrôleur avec les informations de nom d'utilisateur, mot de passe, clientMac, clientIp, apMac, gatewayMac, ssidName, schéma, vid, radioId, originUrl. (Étape 6)
5. Le client envoie des paquets HTTP/HTTPS POST à (http) https://target_controller_ip:targetport/portal/radius/auth (ou radius/browserauth) avec le format JSON (ou formulaire HTML) dans le corps du message HTTP après la soumission. La valeur par défaut Le « port cible » du portail est 8843 (étape 7). Pour la différence entre radius/auth et radius/browserauth, veuillez vous référer à la partie Demo et api .
Remarque : à partir de Controlle r 5.0, si l'API « radius/auth » est utilisée, le champ « Access-Control-Allow-Origin:URL » doit être soumis dans l'en-tête HTTP pour améliorer la sécurité lors du partage de ressources entre origines croisées (CORS). . Par exemple, si le nom de domaine de votre portail Web externe est « www.tplinkportal.com », vous devez ajouter « Access-Control-Allow-Origin:https://www.tplinkportal.com ». Veuillez télécharger la démo à la fin de l'article pour référence.
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)formulaire
7. Si l'authentification est réussie, c'est-à-dire qu'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)
Démo et API :
De la version 4.1.5 à la version 5.1.0, nous fournissons l'API : target_controller_ip:targetport/portal/radius/auth avec soumission au format JSON,
Le modèle HTML ci-dessous est une démo simple pour vous permettre de développer votre portail Web externe fonctionnant avec Omada Controller en utilisant le format JSON :
Démo de serveur Web externe (JSON)
Lorsque HTTPS est utilisé côté portail Web et HTTP côté contrôleur omada, l'accès AJAX entraînera des problèmes d'accès inter-domaines de CORS et sera intercepté par le navigateur. Nous fournissons donc un formulaire HTML de soumission ap i depuis Omada Controller 5.3.1 : target_controller_ip:targetport/portal/radius/browserauth , et il réalise le saut de page sur le back-end
Le modèle HTML ci-dessous est une autre démo utilisant le formulaire HTML :
Démo du serveur Web externe (formulaire HTML)
Note:
1. Si vous utilisez Omada Cloud-Based Controller (CBC), seul HTTPS POST vers l'API «browserauth» avec formulaire HTML est pris en charge pour des raisons de sécurité. Pour CBC, veuillez utiliser le domaine de votre CBC au lieu de «target_controller_ip:targetport» dans l'URL pointant vers l'API «browserauth».
Par exemple, pour le CBC avec l'URL dans cette figure, l'API serait « https://aps1-omada-controller.tplinkcloud.com/portal/radius/browserauth »
2. Si votre contrôleur (4.1.5 ou supérieur) est mis à niveau à partir du contrôleur 3. xx, veuillez noter que nous avons modifié certains « noms » des paramètres.
Nom (V3.x) |
Nom (V4.x) |
Taper |
Remarque |
clientMac |
clientMac |
chaîne |
adresse MAC du client |
clientIp |
clientIp |
chaîne |
adresse IP du client |
ap |
apMac |
chaîne |
Adresse MAC AP (uniquement pour ap) |
|
passerelleMac |
chaîne |
Adresse MAC de la passerelle (uniquement pour l'authentification filaire) |
|
à |
entier |
vid (uniquement pour l'authentification filaire) |
sid |
nom_ssid |
chaîne |
nom du SSID |
identifiant radio |
identifiant radio |
entier |
0 : 2,4 GHz, 1 : 5 GHz (uniquement pour ap) |
/ |
Type d'authentification |
entier |
Le type d'authentification réel prend uniquement en charge les méthodes d'authentification RADIUS externe et Hotspot RADIUS. 2 : RAYON externe ; 8 : RAYON du point d'accès |
URL de redirection |
URL d'origine |
chaîne |
URL de redirection |
nom d'utilisateur |
nom d'utilisateur |
chaîne |
nom d'utilisateur d'authentification |
mot de passe |
mot de passe |
chaîne |
mot de passe d'authentification |
Notez qu'apMac et gatewayMac n'existent pas dans la même requête. Lorsque les clients filaires s'authentifient, veuillez laisser l'apMac vide.
3. À l'étape 7, si votre formulaire contient des caractères non-ASCII (par exemple, le nom SSID est chinois ou dans d'autres langues), le codage UTF-8 doit être utilisé lors de l'envoi du HTTP/HTTPS POST au contrôleur.
4. Si vous choisissez l'accès ajax, veuillez noter le champ « Access-Control-Allow-Origin:URL » pour Controller 5.0 et supérieur.
5. Une démonstration de formulaire HTML et une API radius/browserauth sont recommandées.
Annexe : Document API d'authentification et d'authentification de navigateur
Informations de base
Chemin :/portal/radius/auth
Méthodes :POST
Paramètres de la demande
En-têtes
Paramètres |
Valeur |
Requis |
Type de contenu |
application/json |
Oui |
Requête
Paramètres |
Requis |
Description |
clé |
Oui |
Clé AES chiffrée par clé publique RSA, RSA/ECB/PKCS1Padding. Les 16 premiers octets sont la clé et les 16 derniers octets sont le IV. |
Corps
Paramètres |
Taper |
Requis |
Description |
clientMac |
chaîne |
Oui |
adresse MAC du client |
clientIP |
Chaîne |
|
Adresse IP du client |
apMac |
chaîne |
Oui |
Adresse MAC du point d'accès |
passerelleMac |
chaîne |
Oui |
adresse MAC de la passerelle |
nom_ssid |
chaîne |
Oui |
Nom SSID |
à |
entier |
Oui |
ID de VLAN |
identifiant radio |
entier |
Oui |
0 : 2,4 GHz 1 : 5 GHz |
Type d'authentification |
entier |
Oui |
Cette entrée est le type d'authentification en temps réel. Seules les deux options suivantes sont prises en charge : 2 : RADIUS externe 8 : RADIUS du point d'accès |
URL d'origine |
chaîne |
|
URL de redirection |
nom d'utilisateur |
chaîne |
Oui |
Le nom d'utilisateur pour l'authentification |
mot de passe |
chaîne |
Oui |
Le mot de passe pour l'authentification |
Paramètres de réponse
Paramètres |
Taper |
Requis |
Description |
code d'erreur |
entier |
Oui |
Code d'erreur |
Informations de base
Chemin :/portal/radius/browserauth
Méthodes :POST
Paramètres de la demande
En-têtes
Paramètres |
Valeur |
Requis |
Type de contenu |
application/x-www-form-urlencoded |
Oui |
Paramètres du chemin
Paramètres |
Taper |
Requis |
Description |
clientMac |
chaîne |
Oui |
adresse MAC du client |
clientIp |
Chaîne |
|
Adresse IP du client |
apMac |
chaîne |
Oui |
Adresse MAC du point d'accès |
passerelleMac |
chaîne |
Oui |
adresse MAC de la passerelle |
nom_ssid |
chaîne |
Oui |
Nom SSID |
à |
entier |
Oui |
ID de VLAN |
identifiant radio |
entier |
Oui |
0 : 2,4 GHz 1 : 5 GHz |
Type d'authentification |
entier |
Oui |
Cette entrée est le type d'authentification en temps réel. Seules les deux options suivantes sont prises en charge : 2 : RADIUS externe 8 : RADIUS du point d'accès |
URL d'origine |
chaîne |
|
URL de redirection |
nom d'utilisateur |
chaîne |
Oui |
Le nom d'utilisateur pour l'authentification |
mot de passe |
chaîne |
Oui |
Le mot de passe pour l'authentification |
Paramètres de réponse
Paramètres |
Taper |
Requis |
Description |
code d'erreur |
entier |
Oui |
Code d'erreur |