Modelo de código-fonte do External Web Portal (Controller 4.1.5 ou superior)
Adequado para Omada Controller V4.1.5 ou superior.
Para Omada Controller V3.1.4 ou superior, consulte FAQ2390
Para Omada Controller V3.0.5 ou inferior, consulte FAQ916
Este documento descreve os requisitos ao estabelecer um servidor de portal da Web externo. No Omada Controller, o External Web Portal só pode ser usado quando o tipo de autenticação do portal é External Radius Server.
A figura abaixo descreve o fluxo de trabalho entre o cliente wireless, EAP, Controlador Omada, Portal da Web Externo e Servidor Radius. Isso o ajudará a entender melhor os requisitos para estabelecer um servidor de portal da Web externo.
1. Para clientes sem fio e clientes com fio, quando eles estão conectados ao SSID da rede sem fio ou rede LAN com fio e tentam acessar a Internet, o EAP ou gateway intercepta a solicitação HTTP do cliente e a redireciona para o Controlador Omada. (Etapa 1 e Etapa 2)
2. O Controlador Omada redireciona a solicitação do cliente para a página do portal externo respondendo uma resposta HTTP com o código de status 302 Encontrado para o cliente. (Etapa 3 e Etapa 4)
3. O cliente envia a solicitação HTTP/HTTPS GET para o portal da web externo com o 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 )&vid=vid&originUrl=redirecturl (se você não definiu a URL de redirecionamento após os clientes sem fio/com fio passarem pela autenticação do portal, a URL de redirecionamento padrão depende dos clientes sem fio)”.
Por exemplo: "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 ” (Etapa 5)
4. O servidor de portal da web externo deve ser capaz de obter o valor dos parâmetros clientMac, clientIp, apMac, gatewayMac, ssidName, radioId, vid, schema, originUrl . Em seguida, o servidor externo do portal da Web deve redirecionar o cliente para o Controlador com as informações de nome de usuário, senha, clientMac, clientIp, apMac, gatewayMac, ssidName, schema, vid, radioId, originUrl. (Etapa 6)
5. O cliente envia pacotes HTTP/HTTPS POST para (http) https://target_controller_ip:targetport/portal/radius/auth (ou radius/browserauth) com formato JSON (ou formulário HTML) no corpo da mensagem HTTP após o envio. O padrão “targetport” do portal é 8843 (Step7). Para saber a diferença entre radius/auth e radius/browserauth, consulte De mo e api part.
Nota: No Controller r 5.0, se a API “radius/auth” for usada, o campo “ Access-Control-Allow-Origin:URL” deve ser enviado no cabeçalho HTTP para aumentar a segurança durante o Cross-Origin Resource Sharing (CORS) . Por exemplo, se o nome de domínio do seu portal da Web externo for “ www.tplinkportal.com ”, você precisará adicionar “Access-Control-Allow-Origin:https://www.tplinkportal.com”. Faça o download da demonstração no final do artigo para referência.
6. Omada Controller se comunica com o servidor radius para verificar o nome de usuário e a senha. (Etapa 8 e Etapa 9)formulário
7. Se a autenticação for aprovada, ou seja, o Access-Accept for recebido do servidor radius, o Omada Controller redirecionará uma página de sucesso integrada ou uma página da Web predefinida de acordo com a configuração dos clientes. (Passo 10)
Demonstração e API:
De 4.1.5 a 5.1.0, fornecemos API: target_controller_ip:targetport/portal/radius/auth com envio no formato JSON,
O modelo html abaixo é uma demonstração simples para você desenvolver seu Portal Web Externo trabalhando com o Omada Controller usando o formato JSON:
Demonstração do Servidor Web Externo (JSON)
Quando HTTPS é usado no lado do portal da Web e HTTP é usado no lado do controlador omada, o acesso AJAX causará problemas de acesso entre domínios do CORS e será interceptado pelo navegador. : target_controller_ip:targetport/portal/radius/browserauth , e percebe o salto de página no back-end
O modelo html abaixo é outra demonstração usando o formulário HTML:
Demonstração do Servidor Web Externo (formulário HTML)
Observação:
1. Se você estiver usando o Omada Cloud-Based Controller (CBC), somente HTTPS POST para a API “browserauth” com formulário HTML é suportado por motivos de segurança. Para CBC, use o domínio do seu CBC em vez de “target_controller_ip:targetport” no URL que aponta para a API “browserauth”.
Por exemplo, para o CBC com URL nesta figura, a API seria “ https://aps1-omada-controller.tplinkcloud.com/portal/radius/browserauth ”
2. Se o seu Controlador (4.1.5 ou superior) for atualizado do Controlador 3. xx, observe que alteramos alguns “Nomes” dos parâmetros.
Nome(V3.x) |
Nome(V4.x) |
Tipo |
Observação |
clienteMac |
clienteMac |
string |
endereço MAC do cliente |
clienteIp |
clienteIp |
string |
endereço IP do cliente |
ap |
apMac |
string |
Endereço AP MAC (somente para ap) |
|
gatewayMac |
string |
Endereço MAC do gateway (somente para autenticação com fio) |
|
no |
integer |
vid (somente para autenticação com fio) |
ssid |
ssidName |
string |
nome ssid |
radioid |
radioid |
integer |
0: 2,4 GHz, 1: 5 GHz (somente para ap) |
/ |
authType |
integer |
O tipo de autenticação real suporta apenas os métodos de autenticação RADIUS Externo e Hotspot RADIUS. 2: RAIO Externo; 8: RAIO do ponto de acesso |
URL de redirecionamento |
url de origem |
string |
URL de redirecionamento |
nome de usuário |
nome de usuário |
string |
nome de usuário de autenticação |
senha |
senha |
string |
senha de autenticação |
Observe que apMac e gatewayMac não existem na mesma solicitação,quando os clientes com fio são autenticados,deixe em branco o apMac
3. Na etapa 7, se o seu formulário tiver caracteres não ASCII (como o nome SSID é chinês ou outros idiomas), a codificação UTF-8 deve ser usada ao enviar o POST HTTP/HTTPS para o Controlador.
4. Se você escolher o acesso ajax, observe o campo “Access-Control-Allow-Origin:URL” para o Controller 5.0 e superior.
5. Recomenda-se a demonstração do formulário HTML e a API radius/browserauth.
Apêndice: Documento API de autenticação e autenticação do navegador
Informação básica
Caminho : /portal/radius/auth
Método : POST
Parâmetros de Solicitação
Cabeçalhos
Parâmetros |
Valor |
Obrigatório |
Tipo de conteúdo |
aplicativo/json |
Sim |
Consulta
Parâmetros |
Obrigatório |
Descrição |
chave |
Sim |
Chave AES criptografada pela chave pública RSA, RSA/ECB/PKCS1Padding. Os primeiros 16 bytes são a chave e os últimos 16 bytes são o IV. |
Corpo
Parâmetros |
Tipo |
Obrigatório |
Descrição |
clienteMac |
string |
Sim |
endereço MAC do cliente |
clienteIP |
string |
|
Endereço IP do cliente |
apMac |
string |
Sim |
AP endereço MAC |
gatewayMac |
string |
Sim |
endereço MAC do gateway |
ssidName |
string |
Sim |
nome SSID |
no |
integer |
Sim |
ID da VLAN |
radioid |
integer |
Sim |
0: 2,4 GHz 1: 5 GHz |
authType |
integer |
Sim |
Esta entrada é o tipo de autenticação em tempo real. Apenas as duas opções a seguir são suportadas: 2: RADIUS externo 8: RADIUS de ponto de acesso |
url de origem |
string |
|
URL de redirecionamento |
nome de usuário |
string |
Sim |
O nome de usuário para autenticação |
senha |
string |
Sim |
A senha para autenticação |
Parâmetros de resposta
Parâmetros |
Tipo |
Obrigatório |
Descrição |
Erro de código |
integer |
Sim |
Erro de código |
Informação básica
Caminho : /portal/radius/browserauth
Método : POST
Parâmetros de Solicitação
Cabeçalhos
Parâmetros |
Valor |
Obrigatório |
Tipo de conteúdo |
application/x-www-form-urlencoded |
Sim |
Parâmetros de caminho
Parâmetros |
Tipo |
Obrigatório |
Descrição |
clienteMac |
string |
Sim |
endereço MAC do cliente |
clienteIP |
string |
|
Endereço IP do cliente |
apMac |
string |
Sim |
AP endereço MAC |
gatewayMac |
string |
Sim |
endereço MAC do gateway |
ssidName |
string |
Sim |
nome SSID |
no |
integer |
Sim |
ID da VLAN |
radioid |
integer |
Sim |
0: 2,4 GHz 1: 5 GHz |
authType |
integer |
Sim |
Esta entrada é o tipo de autenticação em tempo real. Apenas as duas opções a seguir são suportadas: 2: RADIUS externo 8: RADIUS de ponto de acesso |
url de origem |
string |
|
URL de redirecionamento |
nome de usuário |
string |
Sim |
O nome de usuário para autenticação |
senha |
string |
Sim |
A senha para autenticação |
Parâmetros de resposta
Parâmetros |
Tipo |
Obrigatório |
Descrição |
Erro de código |
integer |
Sim |
Erro de código |