Pular para o conteúdo principal

Integrando a Autenticação WeChat com Captive Portals de WiFi de Visitantes

Este guia explica como integrar a autenticação WeChat OAuth 2.0 em Captive Portals de WiFi de visitantes corporativos. Ele aborda os requisitos de registro em duas plataformas, a seleção de escopo para captura de dados primários, a aplicação de políticas de rede via RADIUS Change of Authorization e a conformidade com a GDPR e a PIPL da China. Operadores de locais de hospitalidade, varejo e eventos encontrarão etapas concretas de implementação, estudos de caso reais e orientações de segurança para implantar o login via WeChat no WiFi de visitantes em escala.

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

Ouça este guia

Ver transcrição do podcast
COMO CONFIGURAR A AUTENTICAÇÃO WECHAT OAUTH PARA CAPTIVE PORTALS Um Briefing Técnico da Purple - Aproximadamente 10 Minutos --- INTRODUÇÃO E CONTEXTO (aproximadamente 1 minuto) Bem-vindo. Se você é responsável pelo WiFi de visitantes em um hotel, rede de varejo, estádio ou centro de convenções que atende visitantes chineses, este briefing é para você. O WeChat tem 1,38 bilhão de usuários ativos mensais, de acordo com os dados de 2024 da Tencent. A esmagadora maioria está na China, mas a plataforma também tem uma presença internacional significativa - quatro milhões de usuários nos Estados Unidos, 12 milhões na Malásia e números crescentes em todo o Sudeste Asiático, Europa e Oriente Médio. Quando um visitante chinês se conecta ao seu WiFi e vê uma página de login apenas com e-mail, Facebook ou um código de voucher, ele enfrenta uma fricção imediata. Ele pode não ter um endereço de e-mail local configurado naquele dispositivo. Ele quase certamente tem o WeChat. Portanto, a questão não é se você deve oferecer o login do WeChat - é como configurá-lo de forma correta, segura e de uma maneira que gere dados proprietários que você possa realmente usar. É isso que vamos abordar hoje. Vamos passar pelo fluxo do OAuth 2.0, os dois registros de plataforma que você precisa, a decisão de escopo que determina quais dados você coleta, o mecanismo de aplicação do lado da rede e as considerações de conformidade que importam em 2026. --- APROFUNDAMENTO TÉCNICO (aproximadamente 5 minutos) Vamos começar com a arquitetura. Um Captive Portal intercepta o tráfego HTTP de um dispositivo não autenticado e o redireciona para uma página de login. Essa página de login é hospedada em um servidor de portal - seja local ou na nuvem. Quando você adiciona o WeChat OAuth, está inserindo um provedor de identidade de terceiros nesse fluxo. Aqui está a sequência. O visitante se conecta ao seu SSID. O ponto de acesso ou controladora sem fio detecta que o dispositivo não possui uma sessão autenticada e redireciona todo o tráfego HTTP para a URL do seu Captive Portal. A página do portal é carregada e apresenta as opções de login - incluindo o WeChat. O visitante toca no login do WeChat. O servidor do seu portal redireciona o navegador para o endpoint de autorização do WeChat, passando o seu App ID, a URI de redirecionamento, o tipo de resposta do código e o escopo. O WeChat lida com a autenticação inteiramente em seus próprios servidores. Se o visitante já estiver logado no WeChat em seu navegador, ele verá uma tela de consentimento. Se estiver usando o navegador interno do WeChat, a experiência pode ser silenciosa com o escopo base snsapi - sem nenhuma solicitação de consentimento. O WeChat então redireciona de volta para a 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, passando seu App ID, App Secret, o código e o tipo de concessão do código de autorização. O WeChat retorna um token de acesso, um token de atualização, o Open ID do usuário e o escopo concedido. Se você solicitou o escopo snsapi userinfo, poderá fazer uma segunda chamada de API para recuperar o apelido, avatar, gênero e cidade do usuário.Agora, os dois registros de plataforma. É aqui que a maioria das implementações dá errado. O WeChat possui duas plataformas de desenvolvedor distintas. A WeChat Open Platform gerencia aplicativos de sites e aplicativos móveis. A WeChat Official Accounts Platform gerencia contas públicas - o que a maioria dos locais realmente precisa. Para um Captive Portal que atende visitantes dentro do navegador interno do WeChat, você precisa de uma Service Account na Official Accounts Platform. Uma Subscription Account não funcionará - ela não possui permissões de autorização de página web OAuth. Uma Service Account possui, e suporta os escopos snsapi base e snsapi userinfo. Para um Captive Portal acessado a partir de um navegador móvel padrão fora do WeChat - Chrome no Android, Safari no iOS - você precisa de um Website Application registrado na Open Platform. Isso utiliza o escopo de login snsapi e apresenta um código QR que o usuário escaneia com o aplicativo WeChat. Na prática, a maioria das implantações de locais utiliza ambos. Um visitante no WiFi de um hotel pode abrir o portal no Chrome, ver um código QR, escaneá-lo com o WeChat e autenticar-se. Ou ele pode seguir um link dentro do próprio WeChat, cair no navegador interno do aplicativo e autenticar-se silenciosamente com snsapi base. Vamos falar sobre a seleção de escopo, pois este é um ponto de decisão real. O snsapi base retorna apenas o Open ID - um identificador exclusivo para aquele usuário dentro da sua Official Account. Não requer solicitação de consentimento do usuário. A autenticação é invisível para o usuário. Isso é ideal para visitantes que retornam e que você já traçou o perfil, ou para locais onde você deseja atrito zero. O snsapi userinfo retorna o Open ID mais o apelido do WeChat do usuário, foto de perfil, gênero, configuração de idioma e cidade. Requer uma tela de consentimento explícita. A maioria dos usuários aceita, mas há atrito. A escolha certa depende do seu caso de uso. Para o registro de um visitante de primeira viagem onde você deseja criar um perfil, use snsapi userinfo e combine-o com uma camada de consentimento em conformidade com o GDPR na página do seu portal. Para um visitante que retorna, que já consentiu e de quem você já possui o perfil, use snsapi base para reautenticação silenciosa. Agora, o lado da aplicação de rede. Obter um token OAuth comprova a identidade, mas não abre a rede automaticamente. Você precisa de um mecanismo para traduzir uma autenticação bem-sucedida em acesso à rede. As duas abordagens padrão são RADIUS Change of Authorisation, definida na RFC 3576, e desvio de endereço MAC (MAC bypass). Com RADIUS CoA, o servidor do seu portal envia uma solicitação 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 visitantes. Isso funciona com Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist e a maioria dos controladores de nível corporativo. Com o MAC bypass, o servidor do portal registra o endereço MAC do dispositivo como um cliente autorizado, e o controlador o permite. O MAC bypass é mais simples de implementar, mas menos seguro, porque os endereços MAC podem ser falsificados.A plataforma de Guest WiFi do Purple lida com ambos os mecanismos. Após a conclusão do WeChat OAuth, a sobreposição em nuvem do Purple envia o sinal apropriado para o hardware subjacente - seja Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme ou Fortinet. O operador do local não precisa gerenciar essa tradução manualmente. --- RECOMENDAÇÕES DE IMPLEMENTAÇÃO E ERROS COMUNS (aproximadamente 2 minutos) Deixe-me apresentar as cinco coisas que fazem com que as implementações de Captive Portal com WeChat OAuth falhem. Primeiro: incompatibilidade de URI de redirecionamento. O WeChat valida a URI de redirecionamento em relação ao domínio autorizado que você registrou na plataforma. Se o servidor do seu portal usa um subdomínio diferente, um caminho diferente ou HTTP em vez de HTTPS, o fluxo OAuth falha com o erro 40029 - código inválido. Registre todas as variantes de domínio que você usa, incluindo ambientes de teste. Segundo: o App Secret do lado do cliente. Seu App Secret nunca deve aparecer no JavaScript do lado do cliente. Ele pertence ao seu servidor. Se for exposto, qualquer pessoa poderá se passar por seu aplicativo e chamar as APIs do WeChat em seu nome. Terceiro: falta de proteção CSRF. O parâmetro de estado na solicitação OAuth existe especificamente para evitar falsificação de solicitação entre sites. Gere um valor de estado criptograficamente aleatório, armazene-o na sessão do usuário e valide-o quando o WeChat redirecionar de volta. Pule isso e você terá uma vulnerabilidade real. Quarto: a falha na detecção do navegador integrado. O navegador integrado do WeChat define uma string de agente de usuário específica contendo MicroMessenger. Se o seu portal não detectar isso e fornecer o fluxo OAuth correto, os usuários terão uma experiência quebrada ou um erro. Quinto: alinhamento com a GDPR e a PIPL. Se você atende a visitantes europeus, a GDPR se aplica. Se você atende a visitantes chineses, a Lei de Proteção de Informações Pessoais da China - PIPL - se aplica. Ambas exigem uma base legal para o processamento, limitação clara de 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 você coletar, documente sua base legal e seu período de retenção. --- PERGUNTAS E RESPOSTAS RÁPIDAS (aproximadamente 1 minuto) Posso usar o login do WeChat em um portal que também oferece login por e-mail e SMS? Sim. A maioria das plataformas de portal empresarial, incluindo o Purple, suporta vários métodos de autenticação na mesma página de portal. O WeChat OAuth funciona no iOS? Sim. O login do WeChat no Safari no iOS funciona por meio do fluxo de código QR ou fluxo de redirecionamento. O próprio aplicativo WeChat lida com a autenticação. O que acontece se a API do WeChat estiver indisponível? Implemente uma alternativa. Se a chamada da API do WeChat expirar ou retornar um erro, redirecione o usuário para um método de login alternativo. Posso usar o Open ID como um identificador de cliente persistente? Dentro da sua Conta Oficial, sim. Para resolução de identidade entre contas em várias propriedades, use o UnionID. --- RESUMO E PRÓXIMOS PASSOS (aproximadamente 1 minuto) Para resumir. A autenticação WeChat OAuth para Captive Portals é um exercício de registro em duas plataformas, uma decisão de escopo, uma integração de imposição de rede e uma revisão de conformidade. Acerte esses quatro pontos e você terá um método de login que atende a mais de um bilhão de visitantes em potencial com zero atrito de senha. Os próximos passos práticos: determine se seus visitantes encontram o portal dentro do navegador integrado do WeChat ou em um navegador móvel padrão. Decida sobre o escopo - snsapi base para visitantes frequentes, snsapi userinfo para registro inicial com consentimento. Confirme se o hardware da sua rede suporta RADIUS CoA. Revise seu aviso de privacidade em relação ao GDPR e à PIPL. Teste a URI de redirecionamento, a validação do parâmetro de estado e a detecção do navegador integrado antes de entrar em operação. Se você deseja ver como a Purple lida com 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 logins em 2024 - visite purple.ai ou fale com sua equipe de conta. Obrigado por ouvir. --- FIM DO ROTEIRO

header_image.png

Resumo

Quando um visitante chinês se conecta à rede da sua empresa e se depara com um Captive Portal que oferece apenas e-mail, Facebook ou códigos de credenciais, você cria um atrito instantâneo. De acordo com os dados de 2024 da Tencent, o WeChat possui 1,38 bilhão de usuários ativos mensais. Integrar o login do WeChat com o guest WiFi não é um mero mimo de hospitalidade; é um requisito técnico para capturar dados primários desse público-alvo sem fricção.

Este guia detalha a arquitetura técnica da integração da autenticação WeChat OAuth 2.0 com captive portals. Ele explica o registro em dupla plataforma necessário para oferecer suporte a navegadores móveis padrão juntamente com o navegador interno do WeChat, avalia os prós e contras entre os escopos snsapi_base e snsapi_userinfo para coleta de dados e descreve como o acesso à rede é imposto usando RADIUS Change of Authorization (CoA) ou MAC Authentication Bypass. Também abrange as configurações de segurança e diretivas de conformidade - GDPR e a Lei de Proteção de Informações Pessoais (PIPL) da China - necessárias para implantações em grande escala nas infraestruturas Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme e Fortinet.


Detalhamento Técnico: Arquitetura WeChat OAuth 2.0

Um Captive Portal intercepta o tráfego HTTP de dispositivos não autenticados e os redireciona para uma página de destino hospedada em um servidor de portal. A adição da autenticação do WeChat insere um provedor de identidade de terceiros nesse fluxo usando o protocolo OAuth 2.0, o mesmo padrão usado pelo Google, Microsoft Entra ID e Okta para identidade federada.

oauth_flow_diagram.png

O fluxo de autenticação funciona da seguinte forma: Um visitante se conecta ao SSID. O ponto de acesso ou controlador wireless detecta a sessão não autenticada e redireciona o tráfego HTTP para a URL do Captive Portal. O visitante seleciona o login do WeChat na página do Portal. O servidor do Portal redireciona o navegador para o endpoint de autorização do WeChat em open.weixin.qq.com, passando o AppID, a URI de redirecionamento, o tipo de resposta como code e o escopo solicitado. O WeChat lida com a autenticação em seus próprios servidores. Se o visitante estiver usando o navegador integrado do WeChat com o escopo snsapi_base, a autenticação é silenciosa - nenhum aviso de consentimento de autorização aparece. Se o snsapi_userinfo for usado, o WeChat exibirá uma página de consentimento de autorização. O WeChat então redireciona de volta para a URI de redirecionamento do Portal com um código de autorização temporário. O servidor do Portal troca esse código por um Access Token fazendo uma chamada de API para api.weixin.qq.com/sns/oauth2/access_token com o AppID, AppSecret, o código e o grant type authorization_code. O WeChat retorna o Access Token, o Refresh Token, o OpenID do usuário e o escopo concedido. Se o snsapi_userinfo foi concedido, o servidor inicia uma segunda chamada de API para obter o apelido, foto de perfil, gênero e cidade do usuário.

Requisitos de Registro em Dupla Plataforma

A maioria das implementações falha na fase de registro. O WeChat opera duas plataformas de desenvolvedores separadas, e as implantações corporativas normalmente exigem ambas.

Plataforma URL Tipo de Conta Necessário Escopos Suportados Ambiente do Navegador
Official Accounts Platform mp.weixin.qq.com Service Account snsapi_base, snsapi_userinfo Navegador Integrado do WeChat
Open Platform open.weixin.qq.com Web Application snsapi_login Navegadores Mobile Padrão

Para visitantes que acessam o Portal dentro do navegador integrado do WeChat, você precisa de uma Service Account na Official Accounts Platform. Contas de assinatura não funcionarão - elas não possuem permissões de autorização de página web OAuth. Para visitantes que acessam o Portal a partir do Chrome no Android ou Safari no iOS, você precisa de uma Web Application na Open Platform, que usa o escopo snsapi_login e exibe um QR code para o usuário escanear.

Na prática, a maioria das implantações de locais utiliza ambos. Um hóspede de hotel pode abrir o Portal no Chrome, ver um QR code, escaneá-lo com o WeChat e se autenticar. Ou pode tocar em um link diretamente dentro do WeChat, entrar no navegador integrado e se autenticar silenciosamente via snsapi_base.

Seleção de Escopo: Coleta de Dados vs. Atrito do Usuário

scope_comparison.png

O escopo que você solicita determina os dados que você coleta e o atrito que o visitante experimenta. Este é um ponto de decisão prático com implicações de conformidade.

snsapi_base retorna apenas o OpenID - o identificador exclusivo para esse usuário dentro da sua Conta Oficial. Não requer solicitação de consentimento do usuário. A autenticação é silenciosa para o visitante. Ideal para visitantes que retornam e cujos perfis você já possui, ou quando você prioriza o acesso sem atritos. Sob os princípios de minimização de dados do GDPR e PIPL, o snsapi_base é muito mais fácil de justificar.

snsapi_userinfo retorna o OpenID mais o apelido do usuário, foto de perfil, gênero e cidade. Requer uma página de consentimento de autorização explícita. Ideal para o registro de visitantes de primeira viagem onde você precisa criar um perfil, combinado com uma sobreposição de consentimento em conformidade na sua página de Portal.

UnionID para Implantações em Múltiplos Locais

Um OpenID é exclusivo para a combinação de um usuário e uma Conta Oficial específica. Um grupo hoteleiro com 20 propriedades, cada uma executando sua própria Conta Oficial, veria 20 OpenIDs diferentes para o mesmo visitante. O UnionID resolve isso. É um identificador único que representa um usuário em todas as Contas Oficiais e aplicativos vinculados à mesma conta da Open Platform. Vincule suas Contas Oficiais à sua conta da Open Platform e o UnionID será retornado na resposta OAuth. Essa é a base para o reconhecimento de visitantes em múltiplos locais.


Guia de Implementação

Mecanismos de Aplicação de Rede

A obtenção de um token OAuth apenas comprova a identidade; ela não abre a rede. Você deve sinalizar ao controladora para permitir o tráfego.

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

MAC Authentication Bypass (MAB) registra o endereço MAC do dispositivo como um cliente autorizado no banco de dados RADIUS. A controladora permite o acesso com base neste MAC. O MAB é mais fácil de implementar, mas menos confiável: dispositivos modernos iOS e Android randomizam endereços MAC por padrão, o que quebra a associação da sessão ao reconectar.

A plataforma de Guest WiFi da Purple automatiza essa transição. Assim que o OAuth do WeChat for concluído, a rede de sobreposição em nuvem da Purple envia o sinal 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 a seguir são inegociáveis.

  1. Proteja o AppSecret. O AppSecret nunca deve aparecer no JavaScript do lado do cliente. Ele deve permanecer no seu servidor. Se comprometido, invasores podem se passar pelo seu aplicativo e chamar a WeChat API em seu nome.
  2. Implemente Proteção CSRF. Gere um valor de state criptograficamente aleatório, armazene-o na sessão do usuário e valide-o quando o redirecionamento do WeChat retornar. Isso evita ataques de falsificação de solicitação entre sites, conforme definido na RFC 6749.
  3. Registre Todas as Variações de URI de Redirecionamento. O WeChat valida a URI de redirecionamento em relação ao seu domínio registrado. Registre cada subdomínio e variante de caminho que você usa (incluindo ambientes de teste) para evitar erros 40029 (código inválido).

Detecção de Navegador In-App

O navegador in-app do WeChat define uma string user-agent contendo MicroMessenger. Seu Captive Portal deve detectar essa string e rotear adequadamente: o navegador in-app usa o fluxo da Conta Oficial, enquanto os navegadores padrão usam o fluxo de código QR da Open Platform. Deixar de detectar essa string resulta em uma experiência corrompida ou erros de autenticação.

hotel_wechat_wifi.png


Melhores Práticas e Conformidade

Conformidade com o GDPR

Se você atende a visitantes europeus ou opera na Europa, o GDPR se aplica aos dados que você coleta via WeChat OAuth. Você deve estabelecer uma base de processamento em conformidade - normalmente consentimento ou legítimo interesse. Antes que a autenticação ocorra, você deve fornecer um aviso de privacidade claro no Captive Portal. Você deve responder a solicitações de acesso e de exclusão dos titulares dos dados. Para um framework de conformidade detalhado, consulte o Compliance Playbook: GDPR and Guest WiFi Data Privacy .

Conformidade com a PIPL

Ao lidar com dados pessoais de cidadãos chineses, aplica-se a Lei de Proteção de Informações Pessoais da China (PIPL). Semelhante ao GDPR, a PIPL exige limitação explícita de finalidade, minimização de dados e uma base jurídica por escrito. Sob o princípio da minimização de dados, o snsapi_base é muito mais fácil de justificar do que o snsapi_userinfo. Qualquer que seja o dado coletado, documente sua base jurídica e períodos de retenção antes de entrar no ar.

Isolamento de Rede

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

Autenticação de Contingência

Se a API do WeChat estiver indisponível, seu portal deve redirecionar para um método de login alternativo. Não deixe os convidados olhando para uma tela em branco. Fornecer contingências por e-mail ou SMS garante a continuidade. Isso é 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

Hospitalidade: 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. Seu Captive Portal original exigia verificação de endereço de e-mail e SMS. Os números de celular chineses frequentemente falhavam em receber mensagens SMS de operadoras europeias, e muitos hóspedes não tinham contas de e-mail nativas configuradas em seus dispositivos. Isso levou a taxas de abandono do portal de até 60%.

O hotel registrou uma Conta de Serviço na plataforma de Contas Oficiais e um Aplicativo Web na Plataforma Aberta. O Portal detectou o user-agent MicroMessenger e acionou o snsapi_base para usuários de navegadores integrados ao aplicativo - conectando-os em menos de três segundos sem solicitação de autorização. Os hóspedes no Chrome ou Safari visualizavam um código QR. Em visitas subsequentes, o sistema reconhecia o mesmo OpenID e autenticava silenciosamente o hóspede sem solicitar credenciais. O CRM do hotel registrava o retorno do hóspede, permitindo comunicações direcionadas antes da chegada. Para saber mais sobre a implantação de WiFi na hotelaria, consulte Hospitality .

Varejo: Analytics de Shopping Center

Um grande shopping center queria capturar informações demográficas de consumidores chineses para orientar o mix de lojistas e as estratégias de marketing. Eles precisavam entender a cidade de origem, o gênero e a frequência de visitas. Aqui, o snsapi_base era insuficiente - eles precisavam do snsapi_userinfo. O Portal solicitou o escopo completo de userinfo. Os hóspedes viram a solicitação de autorização do WeChat e clicaram em permitir. A plataforma de analytics do shopping center, integrada ao WiFi Analytics da Purple, recebeu um fluxo de dados demográficos verificados. Nas tardes de sábado, 40% dos usuários de WiFi eram de uma região específica. Esses dados influenciaram diretamente quais marcas foram contatadas para ativações pop-up. Para saber mais sobre implantações de WiFi no varejo, consulte Retail .

-

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

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

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

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 token 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 aleatório criptográfico por sessão e valide-o no callback.

Falha na detecção do navegador integrado ao aplicativo. Deixar de detectar o MicroMessenger no user agent significa que os usuários do navegador integrado ao aplicativo receberão o fluxo OAuth incorreto, resultando em erros.

A randomização de endereços MAC interrompe sessões MAB. Os sistemas operacionais móveis modernos randomizam os endereços MAC. Os visitantes que dependem da aplicação MAB perderão a sessão ao se reconectarem. Atualize para RADIUS CoA para um gerenciamento de sessão confiável. Para orientações sobre configuração segura de WiFi, consulte O que é WiFi Seguro: O Guia Essencial Corporativo para 2026 .

-

Retorno sobre o Investimento (ROI) e Impacto no Negócio

A implementação do login via WeChat para WiFi de visitantes oferece três impactos mensuráveis.

Melhores taxas de autenticação. A eliminação de pontos de falha na verificação por SMS e da necessidade de inserção de e-mail aumenta a proporção de visitantes chineses que se conectam com sucesso. Para Captive Portals sem suporte ao WeChat, uma taxa de abandono de 60% é uma estimativa realista.

Qualidade de dados primários. Os perfis verificados pelo WeChat incluem um OpenID validado e, por meio do snsapi_userinfo, acesso direto a atributos demográficos da plataforma social. Esses dados podem ser inseridos em plataformas de análise para direcionar campanhas de marketing sem depender de cookies de terceiros.

Redução de custos operacionais com suporte. O login unificado reduz o volume de chamadas para a recepção e para a equipe de suporte de TI para solucionar problemas de conexão de visitantes internacionais.

A Purple opera em mais de 80.000 estabelecimentos e processou 440 milhões de logins em 2024 (dados internos da Purple). A plataforma possui certificação ISO 27001, está em conformidade com o GDPR e a CCPA, e mantém um tempo de atividade de 99,999%. Para estabelecimentos nos setores de Varejo e Hotelaria , a autenticação via WeChat transforma a rede de um centro de custo em um canal robusto de captura de dados primários.

Definições principais

Captive portal

Uma página web que intercepta o tráfego HTTP de um dispositivo não autenticado e exige que o usuário interaja com ela antes de conceder acesso à rede.

A interface principal onde a opção de login do WeChat é apresentada ao visitante. O servidor do portal hospeda 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 que um aplicativo de terceiros obtenha acesso limitado a um serviço HTTP em nome de um usuário.

O protocolo subjacente que o WeChat usa para passar tokens de autenticação para o servidor do portal sem expor as credenciais do usuário. O mesmo protocolo usado pelo Microsoft Entra ID, Okta e Google Workspace.

OpenID

Um identificador alfanumérico exclusivo atribuído a um usuário específico do WeChat para uma Conta Oficial específica.

Usado como a chave primária para identificar visitantes que retornam no banco de dados de analytics de WiFi. Muda por Conta Oficial - use UnionID para reconhecimento entre propriedades.

UnionID

Um identificador exclusivo do WeChat que representa um usuário em todas as Contas Oficiais e aplicativos vinculados à mesma conta da Open Platform.

Essencial para grupos hoteleiros, redes de varejo e operadores de estádios com múltiplos locais que precisam reconhecer o mesmo visitante em toda a sua propriedade.

RADIUS CoA (Change of Authorization)

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

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

snsapi_base

Um escopo de OAuth do WeChat que retorna apenas o OpenID do usuário e não requer nenhuma solicitação de consentimento do usuário.

O escopo recomendado para a reautenticação de visitantes recorrentes. Mais fácil de justificar sob os princípios de minimização de dados do GDPR e PIPL.

snsapi_userinfo

Um escopo de OAuth do WeChat que retorna o OpenID, apelido, avatar, gênero e cidade do usuário, e requer uma tela de consentimento explícita.

Usado para o registro de visitantes pela primeira vez, onde dados demográficos são necessários para analytics. Requer base legal documentada sob o GDPR e PIPL.

PIPL (Personal Information Protection Law)

A legislação abrangente de privacidade de dados da China, em vigor desde novembro de 2021, que regulamenta o processamento de informações pessoais de pessoas físicas localizadas na China.

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

AppSecret

Uma chave criptográfica confidencial emitida pelo WeChat durante o registro do aplicativo, usada para autorizar chamadas de API do servidor do portal.

Deve ser armazenado exclusivamente no lado do servidor. A exposição no JavaScript do lado do cliente permite que invasores se passem pelo aplicativo e façam chamadas maliciosas para as APIs do WeChat.

Exemplos práticos

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

Passo 1: Registrar uma conta de serviço (Service Account) na WeChat Official Accounts Platform (mp.weixin.qq.com) e um aplicativo web (Website Application) na WeChat Open Platform (open.weixin.qq.com). Passo 2: Configurar o portal para detectar a string de agente de usuário MicroMessenger. Se detectada, acionar o fluxo OAuth snsapi_base para autenticação silenciosa. Se não for detectada, apresentar o fluxo de código QR. Passo 3: Adicionar um aviso de privacidade em conformidade com a GDPR e uma caixa de seleção de consentimento à página do portal antes que o botão de login do WeChat se torne ativo. O aviso deve declarar: dados coletados (apenas OpenID), finalidade (acesso ao WiFi de visitantes 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 uma solicitação RADIUS CoA para a controladora Cisco Meraki, movendo o dispositivo do visitante da VLAN pré-autenticação para a VLAN de visitantes segmentada. Passo 5: Armazenar o OpenID associado ao endereço MAC do dispositivo no banco de dados de visitantes. Em 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. O uso do snsapi_base alinha-se com os princípios de minimização de dados da 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 atende ao requisito da GDPR para uma base legal documentada. A decisão fundamental é optar pelo snsapi_base em vez do snsapi_userinfo - o hotel não precisa de dados demográficos para este caso de uso, portanto, coletá-los introduziria obrigações de conformidade desnecessárias.

Um shopping center deseja capturar dados de gênero e cidade de compradores chineses via WiFi de visitantes para alimentar sua plataforma de análise de dados. Atualmente, eles usam MAC Authentication Bypass em seu portal existente executado em hardware HPE Aruba.

Passo 1: Registrar uma conta de serviço (Service Account) na WeChat Official Accounts Platform. Passo 2: Configurar o portal para usar o escopo snsapi_userinfo para recuperar gênero e cidade. Passo 3: Adicionar uma tela de consentimento clara explicando a troca de valor: WiFi gratuito em troca do acesso aos dados do perfil. O consentimento deve ser explícito e granular de acordo com a GDPR e a PIPL. Passo 4: Após a autenticação, o servidor do portal registra o endereço MAC do dispositivo no banco de dados RADIUS. A controladora HPE Aruba permite o acesso via MAB. Passo 5: Documentar a base legal (consentimento), a finalidade (análise do local e marketing) e o período de retenção (24 meses) em um registro de processamento de dados. Fornecer um mecanismo para exclusão de dados.

Comentário do examinador: O escopo snsapi_userinfo recupera 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 padrão, o que significa que os visitantes perderão a sessão autenticada ao se reconectarem e serão forçados a se autenticar novamente. O shopping deve planejar a migração para RADIUS CoA no HPE Aruba para resolver isso. A documentação de conformidade com a PIPL não é opcional - é um requisito legal para processar dados de cidadãos chineses, independentemente de onde o estabelecimento esteja localizado.

Questões práticas

Q1. Você está implantando um Captive Portal em um estádio. Você deseja que os portadores de ingressos de temporada que já se autenticaram anteriormente se conectem automaticamente sem ver uma tela de login nas visitas subsequentes. Qual escopo de OAuth do WeChat você deve implementar para o fluxo de reautenticação e por quê?

Dica: Considere qual escopo permite a autenticação silenciosa sem solicitar o consentimento do usuário em cada visita.

Ver resposta modelo

Use snsapi_base. Este escopo retorna apenas o OpenID do usuário e não requer solicitação de consentimento, permitindo a reautenticação silenciosa. Na primeira visita, você armazena o OpenID no perfil do torcedor. Nas visitas subsequentes, o portal detecta o OpenID de retorno via snsapi_base, confirma a correspondência e emite um RADIUS CoA para conceder o acesso - tudo sem que o torcedor veja uma tela de login. Isso também se alinha com os princípios de minimização de dados do GDPR, pois você não está coletando dados adicionais além do necessário para a função de autenticação.

Q2. Durante os testes, seu portal redireciona com sucesso para o WeChat, o usuário concede o consentimento e o WeChat redireciona de volta para o seu portal. No entanto, os logs 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 você o resolve?

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

Ver resposta modelo

A causa mais provável é uma incompatibilidade de URI de redirecionamento. O WeChat valida o URI de redirecionamento na solicitação OAuth com base no domínio autorizado registrado na plataforma. Se o servidor do portal usar um subdomínio diferente, um caminho diferente ou HTTP em vez de HTTPS, a troca de código falhará com o erro 40029. Resolução: faça login na plataforma de desenvolvedor do WeChat, navegue até as configurações de Conta de Serviço (Service Account) ou Aplicativo Web e adicione cada variante de URI de redirecionamento que você utiliza - incluindo subdomínios de homologação, caminhos diferentes e versões HTTPS. Certifique-se de que o parâmetro redirect_uri na sua solicitação OAuth corresponda exatamente a um dos URIs registrados, incluindo a codificação de URL.

Q3. Um gerente 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 do navegador do cliente. Por que você deve rejeitar essa 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 o expõe a qualquer pessoa que visualize o código-fonte da página ou intercepte o tráfego de rede. Um invasor pode extrair o AppSecret e se passar pelo aplicativo, chamando as APIs do WeChat em nome do local, acessando dados do usuário e potencialmente comprometendo 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 o encaminha para o servidor do portal por meio de uma chamada de API do lado do servidor. O servidor do portal armazena o AppSecret em uma 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 na Europa deseja criar um perfil unificado de hóspedes que reconheça quando o mesmo hóspede chinês se hospeda em propriedades diferentes. Cada propriedade possui sua própria Conta Oficial do WeChat. Qual identificador do WeChat eles devem usar e qual configuração é necessária?

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

Ver resposta modelo

Use o UnionID. O OpenID muda por Conta Oficial, de modo que o mesmo hóspede terá 15 OpenIDs diferentes em 15 contas. O UnionID é um identificador estável que representa um usuário em todas as Contas Oficiais e aplicativos vinculados à mesma conta da Open Platform. Configuração necessária: vincule todas as 15 Contas Oficiais a uma única conta da Open Platform do WeChat. Uma vez vinculado, o UnionID é retornado na resposta OAuth quando o usuário autoriza pelo menos uma das contas vinculadas. Use o UnionID como chave primária no CRM de hóspedes para criar perfis entre propriedades e reconhecer hóspedes recorrentes, independentemente de qual propriedade eles visitem.