Como Configurar a Autenticação OAuth do WeChat para Captive Portals
Este guia técnico explica como configurar a autenticação OAuth do WeChat para captive portals. Ele detalha os registros de plataforma necessários, o fluxo OAuth 2.0, a seleção de escopo e os mecanismos de aplicação de rede necessários para capturar dados primários de visitantes chineses com segurança.
Ouça este guia
Ver transcrição do podcast
- Resumo Executivo
- Arquitetura Técnica
- Requisitos de Registro de Plataforma
- Plataforma de Contas Oficiais do WeChat
- WeChat Open Platform
- Seleção de Escopo e Coleta de Dados
- snsapi_base
- snsapi_userinfo
- Integração de Execução de Rede
- RADIUS Change of Authorization (CoA)
- MAC Address Bypass
- Considerações de Conformidade e Segurança
- Alinhamento com GDPR e PIPL
- Proteção CSRF
- Validação de URI de Redirecionamento

Resumo Executivo
Quando visitantes chineses se conectam ao seu WiFi, apresentar uma splash page apenas com opções de login por e-mail ou Facebook cria uma barreira de entrada imediata. Com 13,8 bilhões de usuários ativos mensais, configurar o WeChat como um provedor de identidade elimina esse atrito. Este guia demonstra como implementar a autenticação WeChat OAuth 2.0 para Captive Portals, detalhando os registros de plataforma necessários, fluxos de OAuth e os mecanismos de aplicação de rede exigidos para traduzir um login bem-sucedido em acesso à rede. Abordaremos a implementação técnica para hardware de nível corporativo, juntamente com os requisitos de conformidade sob a GDPR e PIPL.
Arquitetura Técnica
O Captive Portal intercepta o tráfego HTTP de dispositivos não autenticados e os redireciona para uma splash page hospedada em um servidor de portal. Ao integrar o WeChat OAuth, você insere um provedor de identidade de terceiros nesse fluxo.

Aqui está a interação exata passo a passo:
- O visitante se conecta ao SSID.
- O Access Point (AP) sem fio ou controladora sem fio detecta a falta de uma sessão autenticada e redireciona o tráfego HTTP para a URL do Captive Portal.
- O visitante seleciona WeChat Login.
- O servidor do portal redireciona o navegador para o endpoint de autorização do WeChat (
open.weixin.qq.com), passando oAppID,redirect_uri,response_type=codeescope. - O WeChat lida com a autenticação. Se o visitante estiver dentro do navegador interno do aplicativo WeChat usando o escopo
snsapi_base, isso ocorre de forma silenciosa. - O WeChat redireciona de volta para a
redirect_urido portal com um código de autorização temporário. - O servidor do portal troca esse código por um token de acesso chamando
api.weixin.qq.com/sns/oauth2/access_token. - O WeChat retorna o
access_token,refresh_tokene oopeniddo usuário.
Requisitos de Registro de Plataforma
A implementação do login do WeChat exige o registro na plataforma de desenvolvedores correta. O WeChat opera duas plataformas distintas, e selecionar a errada causará falha na integração.
Plataforma de Contas Oficiais do WeChat
Para Captive Portals servidos no navegador integrado do WeChat, você precisa de uma Service Account registrada na WeChat Official Accounts Platform (mp.weixin.qq.com). Subscription Accounts não possuem as permissões necessárias de autorização de página web OAuth. Service Accounts suportam os escopos snsapi_base e snsapi_userinfo.
WeChat Open Platform
Para Captive Portals acessados de navegadores móveis padrão fora do WeChat (ex: Chrome no Android ou Safari no iOS), você precisa de uma Website Application registrada na Open Platform (open.weixin.qq.com). Isso utiliza o escopo snsapi_login e apresenta um QR code para o usuário escanear com o aplicativo WeChat.
A maioria das implantações corporativas exige ambos os registros para cobrir todas as vias de acesso.
Seleção de Escopo e Coleta de Dados
O parâmetro de escopo determina quais dados o WeChat retorna para o servidor do seu portal. Essa decisão afeta tanto a fricção do usuário quanto a conformidade com a privacidade de dados.

snsapi_base
Este escopo retorna apenas o OpenID, o identificador exclusivo do usuário em sua Official Account. Ele não exige nenhuma solicitação de autorização do usuário, tornando a autenticação silenciosa. Isso é ideal para visitantes frequentes para os quais você já possui um perfil, ou para locais que priorizam zero fricção em vez da coleta de novos dados.
snsapi_userinfo
Este escopo retorna o OpenID junto com o apelido do WeChat do usuário, foto de perfil, gênero, configurações de idioma e cidade. Ele exige uma página de autorização explícita, introduzindo fricção. Use isso para o registro de visitantes de primeira viagem onde a criação de um perfil é necessária, combinado com uma camada de consentimento em conformidade com o GDPR.
Integração de Execução de Rede
A aquisição de um token OAuth comprova a identidade, mas não abre a rede. Você deve traduzir a autenticação bem-sucedida em acesso à rede usando protocolos padrão.
RADIUS Change of Authorization (CoA)
Definido no IEEE 802.1X e RFC 3576, o RADIUS CoA permite que o servidor do portal envie uma solicitação ao controlador de rede após o sucesso do OAuth. O controlador então move o dispositivo de uma VLAN não autenticada para uma VLAN de convidados. Este é o padrão para hardware de nível corporativo, incluindo Cisco Meraki, HPE Aruba, Ruckus e Juniper Mist.
MAC Address Bypass
Como alternativa, o servidor do portal registra o endereço MAC do dispositivo como um cliente autorizado, e o controlador permite o acesso. Embora mais simples de implementar, isso é menos seguro, pois os endereços MAC podem ser falsificados.
A tecnologia de sobreposição em nuvem da Purple automatiza essa transição, enviando os sinais apropriados para o hardware subjacente (incluindo Ubiquiti UniFi, Cambium, Extreme e Fortinet) assim que o OAuth do WeChat for concluído.
Considerações de Conformidade e Segurança
Alinhamento com GDPR e PIPL
Se você atende a visitantes europeus, a GDPR se aplica aos dados coletados via WeChat OAuth. Se você atende a visitantes chineses, a Lei de Proteção de Informações Pessoais (PIPL) da China se aplica. Ambas as estruturas exigem que o processamento tenha uma base legal, limitação explícita de finalidade e minimização de dados. Comparado ao escopo snsapi_userinfo, o escopo snsapi_base é mais fácil de alinhar com os princípios de minimização de dados.
Proteção CSRF
O parâmetro state em solicitações OAuth evita a falsificação de solicitação entre sites (Cross-Site Request Forgery). Você deve gerar um valor de estado criptograficamente aleatório, armazená-lo na sessão do usuário e validá-lo quando o WeChat redirecionar de volta.
Validação de URI de Redirecionamento
O WeChat valida a redirect_uri em relação ao domínio autorizado registrado na plataforma. Se o seu servidor de portal usar um subdomínio ou caminho diferente, ou usar HTTP em vez de HTTPS, o fluxo OAuth falhará com o erro 40029.
Para obter mais informações sobre como proteger sua rede, consulte nosso Segurança de WiFi Corporativo: Um Guia Completo para 2026 .
Definições principais
snsapi_base
Um escopo OAuth do WeChat que retorna apenas o OpenID do usuário sem exibir uma solicitação de consentimento.
Usado quando as equipes de TI precisam autenticar visitantes que retornam silenciosamente, sem causar atrito no login.
snsapi_userinfo
Um escopo OAuth do WeChat que retorna o OpenID junto com dados demográficos (apelido, gênero, cidade) e requer o consentimento explícito do usuário.
Usado durante o primeiro registro quando as equipes de marketing precisam criar um perfil de visitante.
OpenID
Um identificador exclusivo para um usuário específico dentro de uma Conta Oficial do WeChat específica.
Usado como a chave primária no banco de dados do portal para rastrear o comportamento do visitante e as visitas de retorno.
RADIUS CoA
Change of Authorisation (Mudança de Autorização). Um mecanismo definido no RFC 3576 que permite a um servidor modificar o estado de autorização de uma sessão ativa.
Usado pelo servidor do portal para informar ao controlador sem fio que conceda acesso à rede após a autenticação bem-sucedida no WeChat.
PIPL
Lei de Proteção de Informações Pessoais. A regulamentação abrangente de privacidade de dados da China.
Deve ser considerado juntamente com o GDPR ao projetar o fluxo de consentimento para visitantes chineses usando o login do WeChat.
AppID e AppSecret
As credenciais fornecidas pelo WeChat para identificar e autenticar sua aplicação.
O AppSecret deve permanecer seguro no servidor do portal e nunca ser exposto no código do lado do cliente.
Parâmetro State
Uma string criptograficamente aleatória passada na solicitação OAuth e validada no retorno.
Essencial para prevenir ataques de falsificação de solicitação entre sites (CSRF) no captive portal.
Bypass de Endereço MAC
Um método de conceder acesso à rede autorizando o endereço de hardware do dispositivo em vez de exigir a autenticação 802.1X.
Uma alternativa ao RADIUS CoA para configurações de rede mais simples, embora menos segura.
Exemplos práticos
Uma marca de varejo de luxo em Londres quer oferecer login do WeChat para compradores chineses. Eles desejam coletar dados demográficos para entender sua base de clientes, mas estão preocupados com a conformidade com o GDPR e as altas taxas de abandono no portal.
O varejista deve registrar uma conta de serviço na Plataforma de Contas Oficiais do WeChat. Eles devem configurar o portal para usar o escopo snsapi_userinfo para as primeiras conexões para coletar dados demográficos (apelido, gênero, cidade). Para garantir a conformidade com o GDPR, a página do portal deve exibir um opt-in claro de escolha consciente antes do redirecionamento do WeChat, explicando exatamente quais dados são coletados e por quê. Para compradores que retornam, o portal deve detectar o endereço MAC e usar snsapi_base para reautenticação silenciosa, minimizando o atrito.
Um estádio implanta uma nova rede WiFi usando controladores HPE Aruba. Eles configuraram o OAuth do WeChat e o portal recebe com sucesso o token de acesso, mas o dispositivo do visitante permanece na página do captive portal e não consegue acessar a internet.
A integração carece de um mecanismo de aplicação de rede. O servidor do portal verificou a identidade do usuário com o WeChat, mas não instruiu o controlador HPE Aruba a conceder o acesso. O servidor do portal deve ser configurado para enviar uma mensagem RADIUS Change of Authorisation (CoA) para o controlador, instruindo-o a transicionar o endereço MAC do usuário do perfil de pré-autenticação para o perfil de convidado autenticado.
Questões práticas
Q1. Você está implantando um Captive Portal em uma rede de varejo. Os testes mostram que os usuários que abrem o portal no Safari no iOS recebem um erro ao selecionar o login do WeChat, mas os usuários que abrem o portal a partir de um link de mensagem dentro do WeChat autenticam com sucesso. Qual é a causa provável?
Dica: Considere a diferença entre o navegador interno do WeChat e os navegadores móveis padrão.
Ver resposta modelo
A implementação provavelmente está dependendo exclusivamente de uma Conta de Serviço registrada na Official Accounts Platform, que só suporta OAuth dentro do navegador interno do WeChat. Para suportar o Safari no iOS, você também deve registrar um Website Application na WeChat Open Platform e implementar a detecção de user agent para rotear os usuários do Safari para o fluxo de código QR.
Q2. Os logs do servidor do seu portal mostram erros frequentes de 'invalid code' 40029 retornados pela WeChat API durante a troca de token de acesso. Qual configuração você deve verificar primeiro?
Dica: Pense em como o WeChat valida a origem da requisição de autenticação.
Ver resposta modelo
Você deve verificar a configuração de redirect_uri. O WeChat valida estritamente a URI de redirecionamento em relação ao domínio autorizado registrado no console do desenvolvedor. Se o portal estiver usando um subdomínio diferente, ou se perder o HTTPS, o WeChat rejeitará a troca de código.
Q3. O operador de um local deseja coletar dados dos visitantes, mas insiste em atrito zero durante o processo de login. Ele solicita que você configure o login do WeChat para coletar o apelido e a cidade do visitante sem exibir uma solicitação de consentimento. Como você responde?
Dica: Revise os recursos dos diferentes escopos de OAuth.
Ver resposta modelo
Você deve informar ao operador que isso é tecnicamente impossível. A coleta de dados demográficos como apelido e cidade exige o escopo snsapi_userinfo, que obrigatoriamente aciona uma solicitação de consentimento do WeChat. Para obter atrito zero, você deve usar snsapi_base, que funciona silenciosamente, mas retorna apenas o OpenID.
Continue a ler esta série
Captive Portal para Ruijie: configure-o com o WiFi de convidados Purple
Como o WiFi de convidados em nuvem da Purple se integra aos pontos de acesso Ruijie RG Series usando autenticação web e RADIUS, configurados a partir da linha de comando, e onde encontrar as etapas de configuração exatas.
Projetando Captive Portals B2B: Coletando Nome Registrado e Dados da Empresa
Este guia fornece aos gerentes de TI e operadores de locais uma estrutura técnica neutra em relação a fornecedores para projetar Captive Portals B2B. Ele detalha como estruturar campos de registro para capturar dados de nome registrado e empresa, garantindo altas taxas de conclusão enquanto mantém a conformidade com o GDPR e constrói inteligência no nível da conta.
Arquitetura de Captive Portal: Segurança, Redirecionamento e Melhores Práticas
Uma referência técnica definitiva sobre a arquitetura de captive portal corporativo. Este guia detalha o isolamento de rede, redirecionamento de DNS, autenticação RADIUS e conformidade de segurança para líderes de TI que implantam redes WiFi de visitantes seguras e ricas em dados.