Saltar para o conteúdo principal

Integrar a Autenticação WeChat com Captive Portals de Guest WiFi

Este guia explica como integrar a autenticação WeChat OAuth 2.0 em captive portals de guest WiFi empresariais. Abrange os requisitos de registo em dupla plataforma, a seleção de âmbito para a recolha de dados primários, a aplicação de políticas de rede via RADIUS Change of Authorization e a conformidade com o GDPR e a PIPL da China. Os operadores de recintos em hotelaria, retalho e eventos encontrarão passos concretos de implementação, estudos de caso do mundo real e orientações de reforço de segurança para implementar o login WeChat guest wifi à escala.

📖 8 min de leitura📝 1,966 palavras🔧 2 exemplos práticos4 perguntas de prática📚 9 definições principais

Ouça este guia

Ver transcrição do podcast
COMO CONFIGURAR A AUTENTICAÇÃO OAUTH DO WECHAT PARA CAPTIVE PORTALS Uma Sessão Técnica da Purple - Aproximadamente 10 Minutos --- INTRODUÇÃO E CONTEXTO (aproximadamente 1 minuto) Bem-vindo. Se é responsável pelo WiFi de convidados num hotel, cadeia de retalho, estádio ou centro de conferências que serve visitantes chineses, esta sessão é para si. O WeChat tem 1,38 mil milhões de utilizadores ativos mensais, de acordo com os dados de 2024 da Tencent. A esmagadora maioria está na China, mas a plataforma tem também uma presença internacional significativa - quatro milhões de utilizadores nos Estados Unidos, 12 milhões na Malásia e números crescentes em todo o Sudeste Asiático, Europa e Médio Oriente. Quando um convidado chinês se liga ao seu WiFi e vê uma página de login apenas com e-mail, Facebook ou um código de voucher, enfrenta uma fricção imediata. Pode não ter um endereço de e-mail local configurado nesse dispositivo. Têm quase de certeza o WeChat. Por isso, a questão não é se deve oferecer o login do WeChat - é como configurá-lo corretamente, de forma segura e de uma maneira que gere dados primários que possa realmente utilizar. É isso que vamos abordar hoje. Vamos percorrer o fluxo OAuth 2.0, os dois registos de plataforma de que necessita, a decisão de âmbito que determina quais os dados que recolhe, o mecanismo de aplicação do lado da rede e as considerações de conformidade que importam em 2026. --- MERGULHO TÉCNICO PROFUNDO (aproximadamente 5 minutos) Comecemos pela arquitetura. Um Captive Portal intercetará o tráfego HTTP de um dispositivo não autenticado e redireciona-o para uma página de login. Essa página de login está alojada num servidor de portal - localmente ou na cloud. Quando adiciona o WeChat OAuth, está a inserir um fornecedor de identidade de terceiros nesse fluxo. Eis a sequência. O convidado liga-se ao seu SSID. O ponto de acesso ou controlador sem fios deteta que o dispositivo não tem sessão autenticada e redireciona todo o tráfego HTTP para o URL do seu Captive Portal. A página do portal é carregada e apresenta opções de login - incluindo o WeChat. O convidado toca no login do WeChat. O servidor do seu portal redireciona o navegador para o endpoint de autorização do WeChat, transmitindo o seu App ID, o URI de redirecionamento, o tipo de resposta de código e o âmbito. O WeChat trata da autenticação inteiramente nos seus próprios servidores. Se o convidado já tiver sessão iniciada no WeChat no seu navegador, verá um ecrã de consentimento. Se estiver a utilizar o navegador interno da aplicação WeChat, a experiência pode ser silenciosa com o âmbito base snsapi - sem qualquer pedido de consentimento. O WeChat redireciona então de volta para o URI de redirecionamento do seu portal com um código de autorização temporário. O servidor do seu portal troca esse código por um token de acesso, transmitindo o seu App ID, App Secret, o código e o tipo de concessão de código de autorização. O WeChat devolve um token de acesso, um token de atualização, o Open ID do utilizador e o âmbito concedido. Se solicitou o âmbito snsapi userinfo, pode então fazer uma segunda chamada de API para obter a alcunha, avatar, género e cidade do utilizador.Agora, os dois registos de plataforma. É aqui que a maioria das implementações falha. O WeChat tem duas plataformas de programador distintas. O WeChat Open Platform lida com aplicações web e aplicações móveis. O WeChat Official Accounts Platform lida com contas públicas - aquilo de que a maioria dos locais realmente precisa. Para um Captive Portal que serve convidados dentro do navegador interno da aplicação WeChat, necessita de uma Service Account na Official Accounts Platform. Uma Subscription Account não irá funcionar - não tem permissões de autorização de página web OAuth. Uma Service Account tem, e suporta tanto o âmbito snsapi base como o snsapi userinfo. Para um Captive Portal acedido a partir de um navegador móvel normal fora do WeChat - Chrome no Android, Safari no iOS - necessita de uma Website Application registada na Open Platform. Esta utiliza o âmbito snsapi login e apresenta um código QR que o utilizador lê com a sua aplicação WeChat. Na prática, a maioria das implementações em locais utiliza ambos. Um convidado no WiFi de um hotel pode abrir o portal no Chrome, ver um código QR, lê-lo com o WeChat e autenticar-se. Ou pode seguir um link no próprio WeChat, ir parar ao navegador interno da aplicação e autenticar-se silenciosamente com snsapi base. Falemos sobre a seleção de âmbito, porque este é um verdadeiro ponto de decisão. O snsapi base devolve apenas o Open ID - um identificador único para esse utilizador dentro da sua Official Account. Não requer qualquer pedido de consentimento do utilizador. A autenticação é invisível para o utilizador. Isto é ideal para convidados frequentes dos quais já tem um perfil criado, ou para locais onde pretende atrito zero. O snsapi userinfo devolve o Open ID mais a alcunha do utilizador no WeChat, a imagem de perfil, o género, a definição de idioma e a cidade. Requer um ecrã de consentimento explícito. A maioria dos utilizadores aceita, mas existe atrito. A escolha certa depende do seu caso de uso. Para o registo de um convidado pela primeira vez, onde deseja criar um perfil, utilize o snsapi userinfo e combine-o com uma camada de consentimento em conformidade com o GDPR na página do seu portal. Para um convidado frequente que já consentiu e cujo perfil já possui, utilize o snsapi base para uma nova autenticação silenciosa. Agora, o lado da aplicação na rede. Obter um token OAuth prova a identidade, mas não abre automaticamente a rede. Necessita de um mecanismo para traduzir uma autenticação bem-sucedida em acesso à rede. As duas abordagens padrão são o RADIUS Change of Authorisation, definido no RFC 3576, e o desvio de endereço MAC. Com o RADIUS CoA, o servidor do seu portal envia um pedido CoA para o controlador de rede após o OAuth bem-sucedido, e o controlador move o dispositivo da VLAN não autenticada para a VLAN de convidados. Isto funciona com Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist e a maioria dos controladores de classe empresarial. Com o desvio de MAC, o servidor do portal regista o endereço MAC do dispositivo como um cliente autorizado e o controlador permite o acesso. O desvio de MAC é mais simples de implementar mas menos seguro, porque os endereços MAC podem ser falsificados.A plataforma de Guest WiFi da Purple lida com ambos os mecanismos. Após a conclusão do WeChat OAuth, a sobreposição de nuvem da Purple envia o sinal apropriado para o hardware subjacente - seja ele Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme ou Fortinet. O operador do espaço não necessita de gerir essa tradução de forma manual. --- RECOMENDAÇÕES DE IMPLEMENTAÇÃO E ERROS COMUNS (aproximadamente 2 minutos) Deixe-me apresentar-lhe as cinco razões que levam à falha das implementações de Captive Portal com WeChat OAuth. Primeiro: a incompatibilidade do URI de redirecionamento. O WeChat valida o URI de redirecionamento em relação ao domínio autorizado que registou na plataforma. Se o seu servidor de portal utilizar um subdomínio diferente, um caminho diferente ou HTTP em vez de HTTPS, o fluxo de OAuth falha com o erro 40029 - código inválido. Registe todas as variantes de domínio que utiliza, incluindo ambientes de staging. Segundo: o App Secret do lado do cliente. O seu App Secret nunca deve aparecer no JavaScript do lado do cliente. Pertence ao seu servidor. Se for exposto, qualquer pessoa pode personificar a sua aplicação e fazer chamadas para as APIs do WeChat em seu nome. Terceiro: a falta de proteção CSRF. O parâmetro state no pedido de OAuth existe especificamente para evitar cross-site request forgery. Gere um valor de state criptograficamente aleatório, armazene-o na sessão do utilizador e valide-o quando o WeChat redirecionar de volta. Se saltar este passo, terá uma vulnerabilidade real. Quarto: a falha na deteção do navegador integrado na aplicação. O navegador integrado do WeChat define uma string de user agent específica contendo MicroMessenger. Se o seu portal não detetar isto e não fornecer o fluxo de OAuth correto, os utilizadores terão uma experiência com falhas ou um erro. Quinto: o alinhamento com o GDPR e a PIPL. Se serve visitantes europeus, o GDPR aplica-se. Se serve visitantes chineses, a Lei de Proteção de Informações Pessoais da China - PIPL - aplica-se. Ambos exigem uma base legal para o processamento, limitação clara da finalidade e minimização de dados. O snsapi base é mais fácil de justificar sob os princípios de minimização de dados do que o snsapi userinfo. Independentemente do que recolher, documente a sua base legal e o seu período de retenção. --- PERGUNTAS E RESPOSTAS RÁPIDAS (aproximadamente 1 minuto) Posso utilizar o login do WeChat num portal que também oferece login por e-mail e SMS? Sim. A maioria das plataformas de portal empresarial, incluindo a Purple, suporta múltiplos métodos de autenticação na mesma página de portal. O WeChat OAuth funciona em iOS? Sim. O login do WeChat no Safari em iOS funciona através do fluxo de código QR ou do fluxo de redirecionamento. A própria aplicação WeChat lida com a autenticação. O que acontece se a API do WeChat estiver indisponível? Implemente uma alternativa de fallback. Se a chamada da API do WeChat expirar ou retornar um erro, redirecione o utilizador para um método de login alternativo. Posso utilizar o Open ID como um identificador de cliente persistente? Dentro da sua Conta Oficial, sim. Para a resolução de identidade entre várias contas em múltiplas propriedades, utilize o UnionID. --- RESUMO E PRÓXIMOS PASSOS (aproximadamente 1 minuto) Em resumo. A autenticação WeChat OAuth para captive portals é um exercício de registo em duas plataformas, uma decisão de âmbito, uma integração de aplicação de rede e uma revisão de conformidade. Acerte nestes quatro aspetos e terá um método de início de sessão que serve mais de mil milhões de potenciais visitantes com zero atrito de palavra-passe. Os passos práticos seguintes: determine se os seus visitantes encontram o portal dentro do browser integrado do WeChat ou num browser móvel padrão. Decida sobre o âmbito - snsapi base para visitantes recorrentes, snsapi userinfo para o primeiro registo com consentimento. Confirme se o seu hardware de rede suporta RADIUS CoA. Reveja o seu aviso de privacidade face ao GDPR e PIPL. Teste o URI de redirecionamento, a validação do parâmetro de estado e a deteção de browser integrado antes de avançar para o ambiente de produção. Se quiser ver como a Purple gere o WeChat OAuth como parte de uma plataforma mais ampla de Guest WiFi e análise - em 80.000 locais e 440 milhões de inícios de sessão em 2024 - visite purple.ai ou fale com a sua equipa de conta. Obrigado por ouvir. --- FIM DO SCRIPT

header_image.png

Resumo

Quando um visitante chinês se liga à sua rede corporativa e encontra um Captive Portal que apenas oferece e-mail, Facebook ou códigos de credenciais, cria-se um atrito instantâneo. De acordo com os dados de 2024 da Tencent, o WeChat tem 1,38 mil milhões de utilizadores ativos mensais. A integração do login do WeChat com o guest WiFi não é um mero serviço de cortesia; é um requisito técnico para recolher dados primários deste segmento demográfico sem qualquer atrito.

Este guia detalha a arquitetura técnica da integração da autenticação WeChat OAuth 2.0 com captive portals. Explica o registo de dupla plataforma necessário para suportar browsers móveis standard a par do browser integrado na aplicação WeChat, avalia as vantagens e desvantagens entre os âmbitos snsapi_base e snsapi_userinfo para recolha de dados, e descreve como o acesso à rede é imposto através de RADIUS Change of Authorization (CoA) ou MAC Authentication Bypass. Abrange também as configurações de segurança e diretivas de conformidade - GDPR e a Lei de Proteção de Informações Pessoais da China (PIPL) - necessárias para implementações em larga escala nas infraestruturas Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme e Fortinet.


Análise Técnica Detalhada: Arquitetura WeChat OAuth 2.0

Um Captive Portal intercepta o tráfego HTTP de dispositivos não autenticados e redireciona-os para uma página de destino alojada num servidor de portal. A adição da autenticação WeChat insere um fornecedor de identidade de terceiros neste fluxo utilizando o protocolo OAuth 2.0, o mesmo padrão utilizado pela Google, Microsoft Entra ID e Okta para identidade federada.

oauth_flow_diagram.png

O fluxo de autenticação funciona da seguinte forma: Um visitante liga-se ao SSID. O ponto de acesso ou controlador sem fios deteta a sessão não autenticada e redireciona o tráfego HTTP para o URL do Captive Portal. O visitante seleciona o início de sessão WeChat na página do Portal. O servidor do Portal redireciona o browser para o endpoint de autorização do WeChat em open.weixin.qq.com, transmitindo o AppID, o URI de redirecionamento, o tipo de resposta code e o Scope solicitado. O WeChat trata da autenticação nos seus próprios servidores. Se o visitante estiver dentro do browser integrado do WeChat utilizando o Scope snsapi_base, a autenticação é silenciosa - não aparece qualquer aviso de consentimento de autorização. Se for utilizado o snsapi_userinfo, o WeChat apresenta uma página de consentimento de autorização. O WeChat redireciona então de volta para o URI de redirecionamento do Portal com um código de autorização temporário. O servidor do Portal troca este código por um Access Token, efetuando uma chamada de API para api.weixin.qq.com/sns/oauth2/access_token com o AppID, AppSecret, o código e um tipo de concessão de authorization_code. O WeChat devolve o Access Token, o Refresh Token, o OpenID do utilizador e o Scope concedido. Se o snsapi_userinfo tiver sido concedido, o servidor inicia uma segunda chamada de API para obter o nome de utilizador, a foto de perfil, o género e a cidade.

Requisitos de Registo em Dupla Plataforma

A maioria das implementações falha na fase de registo. O WeChat opera duas plataformas de desenvolvimento distintas, e as implementações empresariais normalmente requerem ambas.

Plataforma URL Tipo de Conta Necessário Scopes Suportados Ambiente de Browser
Official Accounts Platform mp.weixin.qq.com Service Account snsapi_base, snsapi_userinfo Browser da Aplicação WeChat
Open Platform open.weixin.qq.com Web Application snsapi_login Browsers Móveis Padrão

Para os visitantes que acedem ao Portal dentro do browser integrado da aplicação WeChat, necessita de uma Service Account na Official Accounts Platform. As contas de subscrição não irão funcionar - carecem de permissões de autorização de página Web OAuth. Para os visitantes que acedem ao Portal a partir do Chrome no Android ou do Safari no iOS, necessita de uma Web Application na Open Platform, que utiliza o Scope snsapi_login e apresenta um código QR para o utilizador ler.

Na prática, a maioria das implementações em espaços físicos utiliza ambos. Um hóspede de um hotel pode abrir o Portal no Chrome, ver um código QR, lê-lo com o WeChat e autenticar-se. Ou pode tocar num link diretamente dentro do WeChat, entrar no browser integrado na aplicação e autenticar-se silenciosamente através do snsapi_base.

Seleção de Scope: Recolha de Dados vs. Fricção do Utilizador

scope_comparison.png

O Scope que solicita determina os dados que recolhe e a fricção que o visitante experiencia. Este é um ponto de decisão prático com implicações de conformidade.

snsapi_base devolve apenas o OpenID - o identificador único para esse utilizador dentro da sua Conta Oficial. Não requer qualquer pedido de consentimento do utilizador. A autenticação é silenciosa para o visitante. Ideal para visitantes recorrentes cujo perfil já possui, ou quando prioriza o acesso sem fricção. Sob os princípios de minimização de dados do GDPR e PIPL, o snsapi_base é muito mais fácil de justificar.

snsapi_userinfo devolve o OpenID mais o nickname do utilizador, foto de perfil, género e cidade. Requer uma página de consentimento de autorização explícita. Ideal para o registo de visitantes pela primeira vez onde necessita de construir um perfil, emparelhado com uma sobreposição de consentimento em conformidade na sua página de Portal.

UnionID para Implantações Multi-Site

Um OpenID é único para a combinação de um utilizador e uma Conta Oficial específica. Um grupo hoteleiro com 20 propriedades, cada uma a gerir a sua própria Conta Oficial, veria 20 OpenIDs diferentes para o mesmo visitante. O UnionID resolve isto. É um identificador único que representa um utilizador em todas as Contas Oficiais e aplicações associadas na mesma conta de Open Platform. Associe as suas Contas Oficiais à sua conta de Open Platform e o UnionID é devolvido na resposta OAuth. Esta é a base para o reconhecimento de visitantes entre sites.


Guia de Implementação

Mecanismos de Aplicação de Rede

A obtenção de um token OAuth apenas prova a identidade; não abre a rede. Deve sinalizar o controlador para permitir o tráfego.

RADIUS Change of Authorization (CoA) (definido em RFC 3576) é o método de nível empresarial recomendado. Após a validação bem-sucedida do OAuth, o servidor do Portal envia um pedido de CoA para o controlador de rede. O controlador move o dispositivo da VLAN de pré-autenticação para a VLAN de convidados. Isto aplica-se a Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme e Fortinet.

MAC Authentication Bypass (MAB) regista o endereço MAC do dispositivo como um cliente autorizado na base de dados RADIUS. O controlador permite o acesso com base neste MAC. O MAB é mais fácil de implementar mas menos fiável: os dispositivos iOS e Android modernos randomizam os endereços MAC por predefinição, o que quebra a associação da sessão ao restabelecer a ligação.

A plataforma de Guest WiFi da Purple automatiza esta transição. Assim que o OAuth do WeChat estiver concluído, a rede de sobreposição na cloud da Purple envia o sinal de CoA ou MAB apropriado para o hardware subjacente, eliminando o incómodo da configuração manual de VLAN.

Configuração de Segurança

As três configurações seguintes são inegociáveis.

  1. Proteger o AppSecret. O AppSecret nunca deve aparecer no JavaScript do lado do cliente. Deve permanecer no seu servidor. Se for comprometido, os atacantes podem personificar a sua aplicação e chamar a WeChat API em seu nome.
  2. Implementar Proteção CSRF. Gere um valor state criptograficamente aleatório, armazene-o na sessão do utilizador e valide-o quando o redirecionamento do WeChat retornar. Isto previne ataques de cross-site request forgery conforme definido na RFC 6749.
  3. Registar Todas as Variações de URI de Redirecionamento. O WeChat valida o URI de redirecionamento em relação ao seu domínio registado. Registe todos os subdomínios e variantes de caminho que utiliza (incluindo ambientes de staging) para evitar erros 40029 (código inválido).

Deteção do Navegador na Aplicação

O navegador na aplicação do WeChat define uma string de user-agent que contém MicroMessenger. O seu Captive Portal deve detetar esta string e encaminhar em conformidade: o navegador na aplicação utiliza o fluxo de Conta Oficial, enquanto os navegadores padrão utilizam o fluxo de código QR da Plataforma Aberta. A não deteção desta string resulta numa experiência de utilizador com falhas ou em erros de autenticação.

hotel_wechat_wifi.png


Melhores Práticas e Conformidade

Conformidade com o GDPR

Se serve visitantes europeus ou opera na Europa, o GDPR aplica-se aos dados que recolhe através do WeChat OAuth. Deve estabelecer uma base de processamento em conformidade - normalmente consentimento ou interesse legítimo. Antes de a autenticação ocorrer, deve fornecer um aviso de privacidade claro no Captive Portal. Deve responder aos pedidos de acesso do titular dos dados e aos pedidos de eliminação. Para um enquadramento detalhado de conformidade, consulte o Compliance Playbook: GDPR and Guest WiFi Data Privacy .

Conformidade com a PIPL

Quando lida com dados pessoais de cidadãos chineses, aplica-se a Lei de Proteção de Informações Pessoais (PIPL) da China. À semelhança do GDPR, a PIPL exige uma limitação explícita da finalidade, minimização de dados e uma base jurídica escrita. Sob o princípio da minimização de dados, o snsapi_base é muito mais fácil de justificar do que o snsapi_userinfo. Independentemente dos dados que recolher, documente a sua base jurídica e os períodos de retenção antes de entrar em produção.

Isolamento de Rede

Utilize a segmentação de VLAN para isolar o tráfego de WiFi de convidados da sua rede corporativa. Os convidados autenticados via WeChat devem ser colocados numa VLAN de convidados dedicada com acesso apenas à internet - sem acesso a sistemas internos. Isto alinha-se com os requisitos do PCI-DSS para o isolamento do ambiente de dados de titulares de cartões e com as práticas gerais de segurança corporativa. Para saber mais sobre arquitetura de isolamento, consulte o Bandwidth Management: A Practical Guide for 2026 .

Autenticação de Recurso

Se a API do WeChat estiver indisponível, o seu portal deve redirecionar para um método de início de sessão alternativo. Não deixe os convidados a olhar para um ecrã em branco. Disponibilizar alternativas por e-mail ou SMS garante a continuidade. Isto é particularmente crucial em ambientes de Transport e Healthcare , onde a conectividade de rede é uma obrigação de serviço.


Casos de Estudo do Mundo Real

Hotelaria: Grupo de Hotéis de Luxo

Um hotel de luxo de 400 quartos em Londres recebia um número significativo de hóspedes da China continental. O seu Captive Portal original exigia verificação por endereço de email e SMS. Os números de telemóvel chineses falhavam frequentemente na receção de mensagens SMS de operadoras europeias, e muitos hóspedes não tinham contas de email nativas configuradas nos seus dispositivos. Isto levou a taxas de abandono do portal que chegavam aos 60%.

O hotel registou uma Conta de Serviço na plataforma de Contas Oficiais e uma Aplicação Web na Plataforma Aberta. O Portal detetava o user-agent MicroMessenger e acionava o snsapi_base para utilizadores do browser na aplicação - ligando-os em menos de três segundos sem aviso de autorização. Aos hóspedes no Chrome ou Safari era apresentado um código QR. Nas visitas seguintes, o sistema reconhecia o mesmo OpenID e autenticava silenciosamente o hóspede sem solicitar credenciais. O CRM do hotel registava o regresso do hóspede, permitindo comunicações direcionadas antes da chegada. Para saber mais sobre a implementação de WiFi na hotelaria, consulte Hospitality .

Retalho: Analítica de Centros Comerciais

Um grande centro comercial pretendia obter informações demográficas dos consumidores chineses para orientar o mix de lojistas e as estratégias de marketing. Necessitavam de compreender a cidade de origem, o género e a frequência de visitas. Neste caso, o snsapi_base era insuficiente - necessitavam do snsapi_userinfo. O Portal solicitou o âmbito completo do userinfo. Os hóspedes viram o aviso de autorização do WeChat e clicaram em permitir. A plataforma de analítica do centro comercial, integrada com o WiFi Analytics da Purple, recebeu um fluxo de dados demográficos verificados. Aos sábados à tarde, 40% dos utilizadores de WiFi eram de uma região específica. Estes dados influenciaram diretamente as marcas que foram abordadas para ativações de lojas pop-up. Para saber mais sobre implementações de WiFi no retalho, consulte Retail .


Resolução de Problemas e Mitigação de Riscos

Os cinco modos de falha mais comuns em implementações de Captive Portal com OAuth do WeChat são:

Incompatibilidade de URI de Redirecionamento (Erro 40029). O WeChat valida o URI de redirecionamento em relação ao domínio registado. Qualquer incompatibilidade no subdomínio, caminho ou protocolo fará com que a troca de código falhe. Registe todas as variantes, incluindo ambientes de teste.

Exposição do AppSecret. Incorporar o AppSecret no código do lado do cliente é o erro de segurança mais crítico. Por favor, transfira toda a lógica de troca de tokens para o lado do servidor.

Falta de proteção contra CSRF. Negligenciar a validação do parâmetro state deixa o Portal vulnerável a ataques de Cross-Site Request Forgery. Gere um valor criptográfico aleatório por sessão e valide-o no callback.

Falha na deteção de browser na aplicação. A falha na deteção de MicroMessenger no user agent significa que os utilizadores de browsers na aplicação receberão o fluxo de OAuth incorreto, resultando em erros.

A aleatorização do endereço MAC interrompe as sessões MAB. Os sistemas operativos móveis modernos aleatorizam os endereços MAC. Os convidados que dependem da aplicação MAB perderão a sua sessão ao restabelecer a ligação. Atualize para RADIUS CoA para uma gestão de sessões fiável. Para obter orientação sobre a configuração de WiFi seguro, consulte o What is Secure WiFi: The 2026 Enterprise Essential Guide .

-

Retorno do Investimento (ROI) e Impacto Comercial

A implementação do início de sessão WeChat para WiFi de convidados oferece três impactos mensuráveis.

Melhores taxas de autenticação. A eliminação de pontos de falha na verificação por SMS e dos requisitos de introdução de e-mail aumenta a proporção de visitantes chineses que se ligam com sucesso. Para Captive Portals sem suporte para WeChat, uma taxa de abandono de 60% é uma linha de base realista.

Qualidade dos dados primários. Os perfis verificados pelo WeChat incluem um OpenID validado e, através de snsapi_userinfo, acesso direto a atributos demográficos da plataforma social. Estes dados podem ser injetados em plataformas de análise para impulsionar o marketing direcionado sem depender de cookies de terceiros.

Redução dos custos de suporte. O início de sessão contínuo reduz o volume de chamadas para a receção e para a equipa de suporte de TI para resolver problemas de ligação de visitantes internacionais.

A Purple opera em mais de 80 000 locais e processou 440 milhões de inícios de sessão em 2024 (dados internos da Purple). A plataforma tem certificação ISO 27001, está em conformidade com o GDPR e a CCPA, e mantém um tempo de atividade de 99,999%. Para locais nos setores de Retail e Hospitality , a autenticação WeChat transforma a rede de um centro de custos num canal robusto de captura de dados primários.

Definições Principais

Captive portal

Uma página web que intereceta o tráfego HTTP de um dispositivo não autenticado e exige que o utilizador interaja com ela antes de lhe ser concedido acesso à rede.

A interface principal onde a opção de login do WeChat é apresentada ao convidado. O servidor do portal aloja esta página e orquestra o fluxo OAuth.

OAuth 2.0

Um protocolo de autorização padrão da indústria (RFC 6749) que permite a uma aplicação de terceiros obter acesso limitado a um serviço HTTP em nome de um utilizador.

O protocolo subjacente que o WeChat utiliza para transmitir tokens de autenticação para o servidor do portal sem expor as credenciais do utilizador. O mesmo protocolo utilizado pelo Microsoft Entra ID, Okta e Google Workspace.

OpenID

Um identificador alfanumérico único atribuído a um utilizador específico do WeChat para uma Conta Oficial específica.

Utilizado como chave primária para identificar clientes recorrentes na base de dados de analítica de WiFi. Altera-se por Conta Oficial - utilize o UnionID para reconhecimento entre propriedades.

UnionID

Um identificador único do WeChat que representa um utilizador em todas as Contas Oficiais e aplicações associadas à mesma conta de Plataforma Aberta.

Essencial para grupos hoteleiros, cadeias de retalho e operadores de estádios com múltiplos locais que necessitam de reconhecer o mesmo cliente em todo o seu património.

RADIUS CoA (Change of Authorization)

Uma extensão ao protocolo RADIUS (RFC 3576) que permite a um servidor RADIUS alterar dinamicamente os atributos de autorização de uma sessão ativa.

O método seguro utilizado para mover um dispositivo de cliente de uma VLAN de pré-autenticação isolada para a VLAN de internet ativa após um início de sessão bem-sucedido no WeChat. Suportado por Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme e Fortinet.

snsapi_base

Um âmbito de OAuth do WeChat que devolve apenas o OpenID do utilizador e não exige qualquer pedido de consentimento ao utilizador.

O âmbito recomendado para a reautenticação de clientes recorrentes. Mais fácil de justificar ao abrigo dos princípios de minimização de dados do GDPR e do PIPL.

snsapi_userinfo

Um âmbito de OAuth do WeChat que devolve o OpenID, alcunha, avatar, género e cidade do utilizador, e exige um ecrã de consentimento explícito.

Utilizado para o registo de clientes pela primeira vez quando são necessários dados demográficos para analítica. Requer uma base legal documentada ao abrigo do GDPR e do PIPL.

PIPL (Personal Information Protection Law)

A legislação abrangente de privacidade de dados da China, em vigor desde novembro de 2021, que regula o tratamento de informações pessoais de pessoas singulares localizadas na China.

Aplica-se quando os locais processam dados de cidadãos chineses através de OAuth do WeChat. Requer consentimento claro, limitação de finalidade, minimização de dados e um mecanismo de eliminação.

AppSecret

Uma chave criptográfica confidencial emitida pelo WeChat durante o registo da aplicação, utilizada para autorizar chamadas de API a partir do servidor do portal.

Deve ser armazenado exclusivamente no lado do servidor. A exposição em JavaScript no lado do cliente permite que atacantes personifiquem a aplicação e façam chamadas maliciosas para as APIs do WeChat.

Exemplos Práticos

Um hotel de luxo com 400 quartos em Londres tem uma taxa de abandono do portal de 60% entre hóspedes da China continental. O portal atual exige verificação por e-mail e SMS. O Diretor de TI precisa de implementar a autenticação WeChat mantendo a conformidade com o GDPR e a segurança da rede.

Passo 1: Registar uma Conta de Serviço na WeChat Official Accounts Platform (mp.weixin.qq.com) e uma Aplicação Web na WeChat Open Platform (open.weixin.qq.com). Passo 2: Configurar o portal para detetar a string de user agent do MicroMessenger. Se detetada, acionar o fluxo OAuth snsapi_base para autenticação silenciosa. Se não for detetada, apresentar o fluxo de código QR. Passo 3: Adicionar um aviso de privacidade em conformidade com o GDPR e uma caixa de seleção de consentimento à página do portal antes que o botão de login do WeChat fique ativo. O aviso deve indicar: dados recolhidos (apenas OpenID), finalidade (acesso ao guest WiFi e reconhecimento de visitas de retorno) e período de retenção. Passo 4: Após a troca bem-sucedida do token OAuth, o servidor do portal emite um pedido RADIUS CoA para o controlador Cisco Meraki, movendo o dispositivo do visitante da VLAN de pré-autenticação para a VLAN de convidados segmentada. Passo 5: Armazenar o OpenID associado ao endereço MAC do dispositivo na base de dados de convidados. Nas visitas subsequentes, o OpenID de retorno aciona a reautenticação silenciosa.

Comentário do Examinador: Esta abordagem aborda corretamente os requisitos técnicos e de conformidade. A utilização do snsapi_base alinha-se com os princípios de minimização de dados do GDPR, reduzindo o risco legal e eliminando o ponto de falha da verificação por SMS. O RADIUS CoA garante uma segmentação de rede segura e automatizada. A caixa de seleção de consentimento satisfaz o requisito do GDPR de uma base legal documentada. A decisão-chave é a escolha de snsapi_base em detrimento de snsapi_userinfo - o hotel não necessita de dados demográficos para este caso de uso, pelo que a sua recolha introduziria obrigações de conformidade desnecessárias.

Um centro comercial pretende recolher dados de género e cidade de compradores chineses através do guest WiFi para alimentar a sua plataforma de análise de dados. Atualmente, utilizam o MAC Authentication Bypass para o seu portal existente em hardware HPE Aruba.

Passo 1: Registar uma Conta de Serviço na WeChat Official Accounts Platform. Passo 2: Configurar o portal para utilizar o âmbito snsapi_userinfo para obter o género e a cidade. Passo 3: Adicionar um ecrã de consentimento claro que explique a troca de valor: WiFi gratuito em troca do acesso aos dados do perfil. O consentimento deve ser explícito e granular ao abrigo do GDPR e da PIPL. Passo 4: Após a autenticação, o servidor do portal regista o endereço MAC do dispositivo na base de dados RADIUS. O controlador HPE Aruba permite o acesso através de MAB. Passo 5: Documentar a base legal (consentimento), a finalidade (análise de dados do recinto e marketing) e o período de retenção (24 meses) num registo de tratamento de dados. Disponibilizar um mecanismo para a eliminação de dados.

Comentário do Examinador: O âmbito snsapi_userinfo obtém corretamente os dados demográficos necessários. No entanto, depender de MAB introduz um risco operacional significativo: o iOS 14+ e o Android 10+ randomizam os endereços MAC por predefinição, o que significa que os convidados perderão a sua sessão autenticada ao ligarem-se novamente e serão forçados a reautenticar-se. O centro comercial deve planear a migração para RADIUS CoA em HPE Aruba para resolver este problema. A documentação de conformidade com a PIPL não é opcional - é um requisito legal para o processamento de dados de cidadãos chineses, independentemente de onde o recinto esteja localizado.

Perguntas de Prática

Q1. Está a implementar um Captive Portal num estádio. Deseja que os detentores de bilhetes de época recorrentes que já se autenticaram anteriormente se liguem automaticamente sem verem um ecrã de início de sessão nas visitas seguintes. Qual o âmbito de OAuth do WeChat que deve implementar para o fluxo de reautenticação e porquê?

Dica: Considere qual o âmbito que permite a autenticação silenciosa sem solicitar o consentimento do utilizador em cada visita.

Ver resposta modelo

Utilize o snsapi_base. Este âmbito devolve apenas o OpenID do utilizador e não exige pedido de consentimento, permitindo uma reautenticação silenciosa. Na primeira visita, armazena o OpenID no perfil do adepto. Nas visitas seguintes, o portal deteta o OpenID recorrente através do snsapi_base, confirma a correspondência e emite um RADIUS CoA para conceder acesso - tudo sem que o adepto veja um ecrã de início de sessão. Isto também se alinha com os princípios de minimização de dados do GDPR, uma vez que não está a recolher dados adicionais além do necessário para a função de autenticação.

Q2. Durante os testes, o seu portal redireciona com sucesso para o WeChat, o utilizador concede o consentimento e o WeChat redireciona de volta para o seu portal. No entanto, os registos do servidor do portal mostram o erro de OAuth 40029 (código inválido). Qual é o erro de configuração mais provável e como o resolve?

Dica: O WeChat valida estritamente o destino para onde envia o código de autorização em relação a uma lista registada.

Ver resposta modelo

A causa mais provável é uma incompatibilidade de URI de redirecionamento. O WeChat valida o URI de redirecionamento no pedido OAuth em relação ao domínio autorizado registado na plataforma. Se o servidor do portal utilizar um subdomínio diferente, um caminho diferente ou HTTP em vez de HTTPS, a troca de código falha com o erro 40029. Resolução: inicie sessão na plataforma de programadores do WeChat, navegue até às definições da sua Conta de Serviço ou Aplicação Web e adicione todas as variantes de URI de redirecionamento que utiliza - incluindo subdomínios de staging, caminhos diferentes e versões HTTPS. Certifique-se de que o parâmetro redirect_uri no seu pedido OAuth corresponde exatamente a um dos URIs registados, incluindo a codificação de URL.

Q3. Um gestor de TI propõe incorporar o AppSecret do WeChat no JavaScript de front-end do Captive Portal para acelerar o processo de troca de tokens diretamente a partir do browser do cliente. Por que razão deve rejeitar esta proposta e qual é a arquitetura correta?

Dica: Considere as implicações de segurança de expor chaves criptográficas em código acessível publicamente.

Ver resposta modelo

Rejeite esta proposta. O AppSecret é uma chave criptográfica confidencial. Incorporá-lo no JavaScript do lado do cliente expõe-no a qualquer pessoa que visualize o código-fonte da página ou intersete o tráfego de rede. Um atacante pode extrair o AppSecret e fazer-se passar pela aplicação, chamando as APIs do WeChat em nome do local, acedendo aos dados do utilizador e comprometendo potencialmente toda a Conta Oficial. A arquitetura correta: a página do portal do lado do cliente recebe o código de autorização do WeChat e encaminha-o para o servidor do portal através de uma chamada de API do lado do servidor. O servidor do portal guarda o AppSecret numa variável de ambiente segura e realiza a troca de tokens com a API do WeChat. O AppSecret nunca sai do servidor.

Q4. Um grupo hoteleiro com 15 propriedades em toda a Europa pretende criar um perfil de hóspede unificado que reconheça quando o mesmo hóspede chinês fica em propriedades diferentes. Cada propriedade tem a sua própria Conta Oficial do WeChat. Que identificador do WeChat devem utilizar e que configuração é necessária?

Dica: O OpenID é específico da conta. Existe um identificador diferente concebido para reconhecimento entre contas.

Ver resposta modelo

Utilize o UnionID. O OpenID muda por Conta Oficial, pelo que o mesmo hóspede terá 15 OpenIDs diferentes em 15 contas. O UnionID é um identificador estável que representa um utilizador em todas as Contas Oficiais e aplicações associadas à mesma conta da Open Platform. Configuração necessária: associe as 15 Contas Oficiais a uma única conta da WeChat Open Platform. Uma vez associado, o UnionID é devolvido na resposta OAuth quando o utilizador tiver autorizado pelo menos uma das contas associadas. Utilize o UnionID como chave primária no CRM de hóspedes para criar perfis entre propriedades e reconhecer hóspedes recorrentes, independentemente da propriedade que visitem.