Integrating WeChat WiFi Authentication: Captive Portal Onboarding for APAC Customers
WeChat has 1.41 billion monthly active users, making it the primary digital identity for Chinese consumers globally. This guide explains how to integrate WeChat OAuth 2.0 authentication into enterprise captive portals for APAC venues, covering platform registration, scope selection, RADIUS Change of Authorisation enforcement, and dual-framework compliance with GDPR and China's PIPL. It is aimed at IT managers, network architects, and venue operations directors who need to act this quarter.
Escucha esta guía
Ver transcripción del podcast
- Resumen ejecutivo
- Análisis técnico profundo
- El flujo de OAuth 2.0
- Registro en la plataforma: la decisión que complica la mayoría de las implementaciones
- Selección de scope y recopilación de datos
- Ejecución de red: RADIUS CoA y omisión de MAC
- Guía de implementación
- Lista de verificación previa a la implementación
- Pasos de configuración para Ruckus SmartZone
- Detección del navegador integrado en la aplicación
- Mejores prácticas
- Minimización de datos y cumplimiento de doble marco regulatorio
- UnionID para implementaciones en múltiples propiedades
- Robustecimiento de la seguridad
- Casos de estudio
- Cadena de hoteles de lujo, Singapur
- Centro comercial internacional, Kuala Lumpur
- Resolución de problemas y mitigación de riesgos
- ROI e impacto empresarial

Resumen ejecutivo
Para los establecimientos empresariales que operan en la región APAC, o que atienden a turistas chinos a nivel mundial, la autenticación de WeChat WiFi ya no es opcional. Con 1,410 millones de usuarios activos mensuales a partir de 2025 (fuente: Tencent), WeChat es la identidad digital principal para los consumidores chinos. Un invitado que se conecta a su SSID y solo ve opciones de inicio de sesión con correo electrónico o Facebook se enfrenta a una fricción inmediata. Es casi seguro que tienen WeChat. Es casi seguro que no tienen una dirección de correo electrónico local configurada en ese dispositivo.
Esta guía detalla cómo integrar WeChat OAuth 2.0 en un Captive Portal. Cubrimos los dos registros de plataforma distintos que requiere Tencent, la decisión de alcance que determina qué datos de origen recopila y el mecanismo de Cambio de Autorización (CoA) de RADIUS que traduce un intercambio de OAuth exitoso en acceso real a la red. También abordamos los requisitos de cumplimiento superpuestos de GDPR y la Ley de Protección de Información Personal de China (PIPL).
La plataforma Guest WiFi de Purple automatiza la capa de aplicación de red en hardware de Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme y Fortinet. Purple opera en más de 80,000 establecimientos activos y registró 440 millones de inicios de sesión en 2024 (datos internos de Purple).
Análisis técnico profundo
El flujo de OAuth 2.0
Un Captive Portal (una puerta de enlace de autenticación basada en web que intercepta el tráfico HTTP de dispositivos no autenticados) redirige a los invitados a una página de inicio de sesión alojada en un servidor de portal, ya sea local o en la nube. Agregar WeChat OAuth inserta la infraestructura de identidad de Tencent en ese flujo.
La secuencia se ejecuta de la siguiente manera. El invitado se asocia con el SSID. El controlador inalámbrico detecta la ausencia de una sesión autenticada y redirige todo el tráfico HTTP a la URL del Captive Portal. La página del portal se carga y presenta las opciones de inicio de sesión, incluyendo WeChat. El invitado selecciona WeChat. El servidor del portal construye una redirección al endpoint de autorización de WeChat en open.weixin.qq.com, pasando cuatro parámetros: el AppID, el URI de redirección, el tipo de respuesta configurado como code y el alcance solicitado.
WeChat authenticates the user entirely on its own infrastructure. If the guest is already signed in via the WeChat in-app browser, the snsapi_base scope allows silent authentication with no visible prompt. WeChat redirects back to the portal's registered redirect URI with a short-lived authorisation code. The portal server exchanges this code for an access token by calling api.weixin.qq.com/sns/oauth2/access_token with the AppID, AppSecret, code, and grant type. WeChat returns an access token, a refresh token, the user's OpenID, and the granted scope. If snsapi_userinfo was requested, a second API call to api.weixin.qq.com/sns/userinfo retrieves the user's nickname, profile image, gender, and city.

Registro en la plataforma: la decisión que complica la mayoría de las implementaciones
Tencent opera dos plataformas de desarrollo independientes, y seleccionar la incorrecta es la causa más común de implementaciones fallidas.
| Contexto de acceso | Registro requerido | URL de la plataforma | Scopes soportados |
|---|---|---|---|
| Navegador integrado de WeChat | Cuenta de Servicio (Plataforma de Cuentas Oficiales) | mp.weixin.qq.com | snsapi_base, snsapi_userinfo |
| Navegador móvil estándar (Chrome, Safari) | Aplicación Web (Plataforma Abierta) | open.weixin.qq.com | snsapi_login (flujo de código QR) |
Una Cuenta de Suscripción en la Plataforma de Cuentas Oficiales no funcionará. Carece de los permisos de autorización de páginas web de OAuth. Solo una Cuenta de Servicio cuenta con dichos permisos.
La mayoría de las implementaciones empresariales en Hospitalidad y Retail implementan ambos registros. Un huésped en un hotel podría abrir el portal en Chrome, escanear un código QR con WeChat y autenticarse a través del flujo de la Plataforma Abierta. O bien, podría seguir un enlace dentro del propio WeChat, llegar al navegador integrado y autenticarse de forma silenciosa a través del flujo de Cuentas Oficiales. Se deben gestionar ambas rutas.
Selección de scope y recopilación de datos
El scope de OAuth es una decisión arquitectónica real, no un detalle de configuración. Determina la fricción que experimenta el usuario y los datos que recibe su plataforma de WiFi Analytics .
snsapi_base devuelve únicamente el OpenID: un identificador único y estable para ese usuario dentro de su Cuenta Oficial. No requiere ninguna solicitud de consentimiento del usuario. La autenticación es invisible. Utilice esto para huéspedes recurrentes cuyos perfiles ya posee, o para entornos de alto rendimiento como estadios y centros de transporte donde la velocidad de conexión es la prioridad.
snsapi_userinfo devuelve el OpenID más el apodo, la imagen de perfil, el género, la configuración de idioma y la ciudad. Esto activa una pantalla de consentimiento explícito. Utilice esto para el registro de invitados por primera vez para crear un perfil de datos de origen, combinado con una capa de consentimiento que cumpla con PIPL y GDPR en la página del portal.
La regla práctica: use snsapi_base para mayor velocidad, snsapi_userinfo para obtener datos. Puede implementar ambos verificando si el OpenID del usuario ya existe en su base de datos. Si es así, solicite snsapi_base. Si no, solicite snsapi_userinfo.
Ejecución de red: RADIUS CoA y omisión de MAC
Un token de OAuth demuestra la identidad. No abre la red. Un mecanismo independiente debe traducir la autenticación exitosa en un cambio de política de red.
RADIUS Change of Authorisation (CoA), definido en RFC 3576, es el enfoque estándar. Después de que el servidor del portal recibe un token de OAuth válido, envía una solicitud de CoA al controlador inalámbrico. El controlador actualiza la sesión, moviendo el dispositivo de la VLAN del walled garden (un segmento de red restringido que solo permite el tráfico del portal) a la VLAN de invitados completa. Esto funciona con Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme y Fortinet.
La omisión de dirección MAC registra la dirección MAC del dispositivo como un cliente autorizado después de un proceso de OAuth exitoso. El controlador entonces permite el tráfico desde esa dirección sin más validaciones. Es más sencillo de implementar pero conlleva dos riesgos: las direcciones MAC se pueden suplantar, y a partir de iOS 14 y Android 10 se utiliza la aleatorización de direcciones MAC de forma predeterminada, lo que rompe el mecanismo al volver a conectarse.
Para cualquier implementación donde la seguridad sea importante, RADIUS CoA es la opción correcta. Para obtener más información sobre cómo proteger las redes de invitados, consulte What Is Secure WiFi: Essential Guide for Business 2026 y Enterprise WiFi Security: A Complete Guide for 2026 .
Guía de implementación
Lista de verificación previa a la implementación
Antes de escribir una sola línea de configuración, complete estos cinco pasos.
Primero, determine el contexto de acceso. Analice su establecimiento e identifique si los invitados encontrarán el portal dentro del navegador integrado de WeChat, en un navegador móvil estándar o en ambos. La respuesta determina los requisitos de registro de su plataforma.
Segundo, regístrese en la plataforma correcta. Para el acceso desde el navegador integrado, cree una Cuenta de Servicio en la Plataforma de Cuentas Oficiales de WeChat. Para el acceso desde un navegador estándar, registre una Aplicación Web en la Plataforma Abierta de WeChat. Anote su AppID y AppSecret para cada una.
Tercero, configure sus URI de redireccionamiento. Registre cada dominio y subdominio que utilice su portal, incluidos los entornos de prueba. WeChat aplica una validación de coincidencia exacta. Una discrepancia devuelve el error 40029.
Cuarto, implemente el intercambio de tokens en el lado del servidor. El AppSecret nunca debe aparecer en el código del lado del cliente. Cree un endpoint en el lado del servidor que acepte el código de autorización, lo intercambie por un token y devuelva únicamente los datos que su portal necesita.
Quinto, implementa el parámetro state para la protección contra CSRF. Genera un valor criptográficamente aleatorio, almacénalo en la sesión del usuario, pásalo en la solicitud de OAuth y valídalo al retornar.
Pasos de configuración para Ruckus SmartZone
Para los establecimientos que ejecutan Ruckus SmartZone, la configuración del portal de WeChat se encuentra en Services and Profiles, luego Hotspots and Portals, y después en la pestaña WeChat. Debes configurar la URL de autenticación (el endpoint de callback de WeChat de tu servidor de portal), el destino DNAT (el servidor que maneja las redirecciones de clientes no autenticados) y el periodo de gracia (la ventana durante la cual un usuario recientemente desconectado puede volver a conectarse sin tener que volver a autenticarse, que por defecto es de 60 minutos). También debes configurar la lista blanca del walled garden para permitir el tráfico a los endpoints de la API de WeChat durante la fase de autenticación. Consulta también la Guía paso a paso: Configuración de controladores inalámbricos Ruijie para Captive Portals de WiFi para invitados para ver patrones de configuración de controladores comparables.
Detección del navegador integrado en la aplicación
El navegador integrado de WeChat establece una cadena de agente de usuario que contiene MicroMessenger. Tu portal debe detectar esta cadena y ofrecer el flujo de OAuth adecuado. Si MicroMessenger está presente, utiliza el flujo de Official Accounts. Si no está presente, utiliza el flujo de código QR de Open Platform. No detectar esto correctamente produce experiencias rotas o errores de autenticación.
Mejores prácticas
Minimización de datos y cumplimiento de doble marco regulatorio
El GDPR (aplicable a los visitantes europeos) y la PIPL (aplicable a los ciudadanos chinos) exigen una base legal para el procesamiento de datos personales, una limitación clara de la finalidad y la minimización de datos. El alcance snsapi_base es más fácil de justificar bajo los principios de minimización de datos que snsapi_userinfo. Cuando recopiles datos demográficos a través de snsapi_userinfo, documenta tu base legal, tu periodo de retención y tu acuerdo de procesamiento de datos con Tencent.
La PIPL, en vigor desde noviembre de 2021, exige el consentimiento explícito para la información personal sensible y obliga a que los procesadores de datos fuera de China implementen estándares de protección equivalentes. Si el servidor de tu portal se encuentra fuera de China continental, debes evaluar si se aplican las reglas de transferencia transfronteriza de datos a los datos de OpenID y de perfil de WeChat que recibes.
UnionID para implementaciones en múltiples propiedades
El OpenID es único por usuario y por Official Account. Si operas múltiples Official Accounts en distintas propiedades, el mismo invitado tendrá diferentes OpenIDs en cada una. WeChat proporciona un UnionID que se mantiene consistente en todas las cuentas vinculadas al mismo registro de Open Platform. Para cadenas hoteleras, grupos de retail u operadores de aeropuertos que gestionan múltiples establecimientos, implementa la resolución de identidad basada en UnionID desde el principio.
Robustecimiento de la seguridad
Guarde el AppSecret en una variable de entorno o en un gestor de secretos, nunca en el código fuente. Rotelo de inmediato si sospecha que ha sido expuesto. Implemente un límite de tasa (rate limiting) en su endpoint de intercambio de tokens para evitar abusos. Registre todos los errores de OAuth, particularmente el 40029 (código no válido) y el 40163 (código expirado), ya que estos indican una configuración incorrecta o un sondeo activo.
Para obtener una perspectiva más amplia sobre la arquitectura de seguridad de redes de invitados, consulte Por qué los equipos de WiFi domésticos no pertenecen a su red de invitados .
Casos de estudio
Cadena de hoteles de lujo, Singapur
Un hotel de lujo de 350 habitaciones en Singapur que atiende principalmente a un segmento de viajes de negocios chino implementó la autenticación de WeChat WiFi junto con su opción de inicio de sesión por correo electrónico existente. Antes de la implementación, el personal de recepción reportaba un promedio de 15 quejas de huéspedes al día sobre dificultades para iniciar sesión en el WiFi. Los huéspedes chinos intentaban usar direcciones de correo electrónico que no tenían configuradas en sus dispositivos de viaje.
El hotel registró una Cuenta de Servicio en la Plataforma de Cuentas Oficiales de WeChat y una Aplicación Web en la Plataforma Abierta. Configuraron snsapi_userinfo para conexiones por primera vez y snsapi_base para huéspedes recurrentes identificados por dirección MAC. El controlador HPE Aruba se configuró para RADIUS CoA para gestionar la promoción de sesiones.
En un plazo de 30 días, las quejas de inicio de sesión de WiFi de los huéspedes disminuyeron a menos de dos por día. La base de datos de WiFi Analytics del hotel creció en 4,200 perfiles de origen verificados en el primer mes, con datos demográficos a nivel de ciudad que permitieron comunicaciones personalizadas posteriores a la estancia.
Centro comercial internacional, Kuala Lumpur
Un centro comercial premium en Kuala Lumpur, con 12 millones de usuarios de WeChat solo en Malasia, necesitaba una experiencia de incorporación a la red WiFi que coincidiera con las expectativas digitales de su base de compradores. El centro comercial operaba puntos de acceso Cisco Meraki en 180,000 metros cuadrados de superficie comercial.
La implementación utilizó la plataforma de Guest WiFi de Purple como capa en la nube, con WeChat OAuth como método de autenticación principal y SMS OTP como alternativa de respaldo. La arquitectura independiente del hardware de Purple gestionó la integración de RADIUS CoA con Cisco Meraki sin requerir desarrollo personalizado.
El centro comercial registró un aumento del 34% en el inicio de sesiones de WiFi en el primer trimestre posterior a la implementación, lo que se atribuyó a la reducción de la fricción en la incorporación para los usuarios de WeChat. Los datos de origen recopilados a través de los flujos de consentimiento de snsapi_userinfo permitieron al equipo de marketing del centro comercial segmentar a los compradores por ciudad de origen para el envío de campañas dirigidas.

Resolución de problemas y mitigación de riesgos
| Error | Causa | Resolución |
|---|---|---|
| 40029 invalid code | Discrepancia en la URI de redireccionamiento o reutilización de código | Verifique que las URIs registradas coincidan exactamente; los códigos son de un solo uso |
| 40163 code expired | El intercambio de tokens se retrasó más de 5 minutos | Reduzca el tiempo de procesamiento del lado del servidor; implemente lógica de reintento |
| Pantalla en blanco después de la autenticación | RADIUS CoA no está configurado o está fallando | Verifique la configuración de CoA del controlador y las reglas del firewall en el puerto UDP 3799 |
| La aleatorización de MAC interrumpe el flujo de visitantes recurrentes | Aleatorización de MAC en iOS/Android | Migre al seguimiento de sesiones basado en OpenID; evite la identificación exclusiva por MAC |
| snsapi_userinfo devuelve campos vacíos | El usuario ha establecido restricciones de privacidad en WeChat | Gestione los campos nulos de forma adecuada; no requiera datos de perfil para el acceso |
ROI e impacto empresarial
El caso de negocio para la autenticación de WeChat WiFi se basa en tres resultados medibles.
Adquisición de datos de primera mano. Cada autenticación snsapi_userinfo genera un perfil de visitante verificado con datos demográficos. Para un hotel de 200 habitaciones que opera al 70% de ocupación con un 40% de huéspedes chinos, esto representa aproximadamente 20,000 nuevos perfiles verificados al año, cada uno vinculado a una identidad de WeChat que permite un re-engagement continuo.
Reducción de la carga de soporte. Las dificultades al iniciar sesión son la causa principal de las llamadas de soporte de WiFi por parte de los huéspedes. Los establecimientos que añaden la autenticación de WeChat junto con las opciones existentes reportan de manera constante una reducción en las consultas de recepción relacionadas con el WiFi, lo que libera tiempo del personal para interacciones de mayor valor.
Alcance de marketing. Las cuentas oficiales de WeChat permiten a los establecimientos enviar notificaciones push a sus seguidores. Se puede invitar a un huésped que se autentica a través de su cuenta oficial a seguirla, creando un canal de comunicación directo que opera dentro del ecosistema de WeChat, donde los consumidores chinos pasan un promedio de 82 minutos al día (fuente: Walk the Chat).
El plan Engage de Purple amplía esto aún más, permitiendo el envío automatizado de mensajes posteriores a la visita, activadores de lealtad y campañas segmentadas creadas a partir de los datos de primera mano recopilados en el punto de autenticación de WiFi.
Definiciones clave
Captive Portal
Una puerta de enlace de autenticación basada en web que intercepta el tráfico HTTP de un dispositivo no autenticado y lo redirige a una página de inicio de sesión antes de otorgar acceso a la red.
El mecanismo a través del cual se presenta la autenticación de WiFi de invitados a los usuarios. WeChat OAuth es uno de los varios métodos de autenticación que puede ofrecer un Captive Portal.
OAuth 2.0
Un protocolo de autorización estándar de la industria que permite a una aplicación de terceros (el Captive Portal) obtener acceso limitado a un servicio web (WeChat) en nombre de un usuario, sin que este comparta su contraseña con el tercero.
El marco subyacente que hace posible el inicio de sesión de WeChat. El portal nunca ve las credenciales de WeChat del usuario; solo recibe un token que confirma que WeChat los ha autenticado.
RADIUS CoA
Cambio de Autorización (Change of Authorisation). Un mecanismo definido en RFC 3576 que permite a un servidor RADIUS modificar dinámicamente los atributos de autorización de sesión de un cliente de red activo, como cambiar la asignación de VLAN.
El mecanismo de aplicación de red que traduce un intercambio exitoso de WeChat OAuth en acceso real a la red. Sin CoA, el invitado se autentica pero el controlador no sabe que debe abrir la red.
OpenID
Un identificador único asignado por WeChat a un usuario específico para una Cuenta Oficial o Aplicación Web específica. Es estable entre sesiones pero difiere entre cuentas.
La clave principal utilizada para identificar a un invitado en su base de datos de analíticas de WiFi. Utilice UnionID en su lugar si opera múltiples Cuentas Oficiales y necesita una resolución de identidad entre cuentas.
snsapi_base
Un alcance de WeChat OAuth que permite la autenticación silenciosa, devolviendo solo el OpenID del usuario sin mostrar una solicitud de consentimiento.
Úselo para invitados recurrentes o entornos de alto rendimiento donde la velocidad de conexión es la prioridad. No devuelve datos demográficos más allá del OpenID.
snsapi_userinfo
Un alcance de WeChat OAuth que devuelve el OpenID, apodo, imagen de perfil, género, idioma y ciudad del usuario, requiriendo una pantalla de consentimiento explícito del usuario.
Úselo para el registro de invitados por primera vez para crear un perfil de datos de origen. Debe combinarse con una capa de consentimiento que cumpla con GDPR y PIPL.
PIPL
Ley de Protección de Información Personal (Personal Information Protection Law). La legislación integral de privacidad de datos de China, en vigor desde noviembre de 2021, que rige cómo se deben recopilar, procesar y transferir los datos personales de los ciudadanos chinos.
Se aplica a cualquier establecimiento que recopile datos de ciudadanos chinos a través de WeChat OAuth, independientemente de dónde se encuentre el establecimiento. Requiere consentimiento explícito, limitación de finalidad y minimización de datos.
AppSecret
Una clave criptográfica confidencial emitida por WeChat que autentica su aplicación cuando llama a la API de intercambio de tokens de WeChat.
Debe almacenarse únicamente en el lado del servidor. La exposición en el código del lado del cliente permite a cualquier parte suplantar su aplicación y realizar llamadas de API no autorizadas a WeChat.
VLAN
Red de Área Local Virtual (Virtual Local Area Network). Un segmento de red lógico que aísla el tráfico en la capa de enlace de datos, lo que permite que una sola red física transporte múltiples flujos de tráfico aislados.
Se utiliza en implementaciones de Captive Portal para separar los dispositivos no autenticados (VLAN de jardín amurallado) de los invitados autenticados (VLAN de invitados). RADIUS CoA mueve un dispositivo entre VLANs tras una autenticación exitosa.
UnionID
Un identificador de WeChat que se mantiene consistente para un usuario determinado en todas las Cuentas Oficiales y Aplicaciones Web vinculadas al mismo registro de Open Platform.
Esencial para cadenas hoteleras, grupos de retail y operadores de múltiples establecimientos que necesitan reconocer al mismo invitado en múltiples propiedades, cada una con su propia Cuenta Oficial.
Ejemplos resueltos
Un hotel de lujo de 200 habitaciones en Singapur utiliza controladores HPE Aruba y atiende a un gran volumen de viajeros de negocios chinos. Quieren recopilar datos demográficos de los huéspedes que los visitan por primera vez y garantizar que los huéspedes que regresan se conecten automáticamente sin volver a ver el portal. ¿Cómo deben configurar la integración de WeChat OAuth?
Paso 1: Registre una cuenta de servicio en la plataforma de cuentas oficiales de WeChat (mp.weixin.qq.com) para gestionar a los huéspedes que acceden al portal dentro del navegador integrado de WeChat. Registre una aplicación web en la plataforma abierta de WeChat (open.weixin.qq.com) para los huéspedes que utilicen navegadores móviles estándar.
Paso 2: Configure el Captive Portal para detectar la cadena de agente de usuario de MicroMessenger. Ofrezca el flujo OAuth de cuentas oficiales para los usuarios del navegador integrado y el flujo de código QR de la plataforma abierta para los usuarios de navegadores estándar.
Paso 3: Para las conexiones por primera vez (sin OpenID existente en la base de datos), solicite el alcance snsapi_userinfo. Presente una pantalla de consentimiento que cumpla con la PIPL antes del redireccionamiento de OAuth. Almacene el OpenID, el apodo, la ciudad y el género devueltos en la base de datos de perfiles de huéspedes.
Paso 4: Para los huéspedes que regresan (el OpenID ya existe en la base de datos), solicite el alcance snsapi_base. Esto realiza la autenticación de forma silenciosa sin que el usuario vea ninguna solicitud.
Paso 5: Configure el controlador HPE Aruba para RADIUS CoA en el puerto UDP 3799. Después de un OAuth exitoso, el servidor del portal envía una solicitud CoA para promover el dispositivo de la VLAN de walled garden a la VLAN de huéspedes.
Paso 6: Implemente el registro de direcciones MAC junto con OpenID para gestionar la detección de huéspedes que regresan. Tenga en cuenta que la aleatorización de MAC requiere OpenID como identificador principal, no solo la dirección MAC.
El equipo de TI de una cadena de tiendas de retail reporta una alta tasa de fallas en los inicios de sesión de WeChat WiFi en tres ubicaciones de centros comerciales. Los usuarios se autentican en WeChat pero regresan a la página del portal con un error. Los registros del portal muestran el error 40029. ¿Cuál es la causa probable y cómo se resuelve?
El error 40029 significa que WeChat rechazó el código de autorización durante el intercambio de tokens. Las dos causas más comunes son una discrepancia en la URI de redireccionamiento y la reutilización de códigos.
Paso 1: Inicie sesión en la consola de desarrollador de WeChat tanto para la plataforma de cuentas oficiales como para la plataforma abierta. Vaya a la configuración de OAuth y enumere todas las URI de redireccionamiento registradas.
Paso 2: Compare estas con las URI de redireccionamiento reales que utiliza su servidor del portal en producción en las tres ubicaciones. Verifique si hay diferencias de subdominio (portal.brand.com frente a brand.com), diferencias de protocolo (HTTP frente a HTTPS) y diferencias de ruta (/callback frente a /wechat/callback).
Paso 3: Registre cada variante en la consola de WeChat. WeChat realiza una validación de coincidencia exacta, no una coincidencia de prefijos.
Paso 4: Si las URI coinciden, investigue si el servidor de su portal está intentando reutilizar códigos de autorización. Los códigos de WeChat son de un solo uso y caducan después de cinco minutos. Si su servidor vuelve a intentar el intercambio de tokens con el mismo código, recibirá el error 40029 en el segundo intento.
Paso 5: Implemente la idempotencia en el endpoint de intercambio de tokens para evitar solicitudes duplicadas.
Preguntas de práctica
Q1. Estás implementando un Captive Portal para un estadio con capacidad para 60,000 personas que alberga eventos internacionales con una base significativa de aficionados chinos. La prioridad es conectar a todos los asistentes en los primeros 15 minutos de la apertura de puertas para reducir la congestión celular. La recopilación de datos de marketing es un objetivo secundario. ¿Qué alcance (scope) de WeChat OAuth deberías configurar y por qué?
Sugerencia: Considera el impacto de una pantalla de consentimiento mostrada a 15,000 usuarios simultáneos en un servidor de portal.
Ver respuesta modelo
Configura el alcance snsapi_base. Esto permite la autenticación silenciosa sin solicitar el consentimiento del usuario, proporcionando la experiencia de incorporación más rápida posible. A la escala de un estadio, una pantalla de consentimiento añade fricción que se multiplica a través de miles de conexiones simultáneas y puede causar picos de carga en el servidor del portal. snsapi_base devuelve solo el OpenID, lo cual es suficiente para registrar la sesión e identificar a los aficionados que regresan. Para los aficionados nuevos de los que deseas obtener datos demográficos, puedes solicitar que completen su perfil a través de una encuesta posterior a la conexión en lugar de hacerlo en el filtro de autenticación.
Q2. Un arquitecto de red de tu equipo propone almacenar el WeChat AppSecret en el JavaScript del lado del cliente del Captive Portal para reducir los viajes de ida y vuelta al servidor realizando la llamada de intercambio de tokens directamente desde el navegador. Explica por qué este enfoque es un fallo de seguridad crítico y cuál es la arquitectura correcta.
Sugerencia: Considera quién puede ver el código del lado del cliente y qué les permite hacer el AppSecret.
Ver respuesta modelo
Almacenar el AppSecret en el JavaScript del lado del cliente lo expone a cualquier persona que vea el código fuente de la página o intercepte el tráfico de red. El AppSecret autentica tu aplicación ante la API de WeChat. Con él, un actor malicioso puede suplantar tu aplicación, llamar al endpoint de intercambio de tokens de WeChat con cualquier código de autorización válido, recuperar los OpenIDs y datos de perfil de los usuarios, y potencialmente agotar los límites de velocidad de tu API. La arquitectura correcta es un endpoint de intercambio de tokens del lado del servidor. El navegador recibe el código de autorización de WeChat y lo pasa a tu servidor. Tu servidor, utilizando el AppSecret almacenado en una variable de entorno o en un gestor de secretos, intercambia el código por un token y devuelve solo los datos que el portal necesita. El AppSecret nunca sale de tu servidor.
Q3. Tu establecimiento opera tres propiedades hoteleras en diferentes ciudades, cada una con su propia cuenta oficial de WeChat. Un miembro del programa de fidelización que se ha autenticado en las tres propiedades tiene tres OpenIDs diferentes en tu base de datos. ¿Cómo resuelves esto en una única identidad de huésped?
Sugerencia: WeChat proporciona un mecanismo para la resolución de identidad entre cuentas que requiere una configuración de plataforma específica.
Ver respuesta modelo
Implementa el mecanismo UnionID de WeChat. Vincula las tres cuentas oficiales al mismo registro de Open Platform en open.weixin.qq.com. Una vez vinculadas, WeChat devuelve un UnionID junto con el OpenID en la respuesta de snsapi_userinfo. El UnionID es consistente para un usuario determinado en todas las cuentas vinculadas al mismo registro de Open Platform. Migra tu base de datos para utilizar UnionID como el identificador principal de huésped para registros entre propiedades, conservando el OpenID por cuenta para las llamadas a la API específicas de cada cuenta. Para los huéspedes que se autenticaron antes de que se implementara UnionID, activa una reautenticación con snsapi_userinfo en su próxima visita para capturar el UnionID.
Q4. Después de implementar la autenticación de WeChat WiFi en un punto de venta que ejecuta puntos de acceso Cisco Meraki, los huéspedes informan que completan el inicio de sesión de WeChat con éxito pero regresan a la página del portal y no pueden navegar por internet. Los registros del servidor del portal muestran una recuperación de token exitosa. ¿Cuál es la causa más probable y cómo la diagnosticas?
Sugerencia: El portal ha verificado la identidad. ¿Qué es lo que aún no ha sucedido?
Ver respuesta modelo
El RADIUS Change of Authorisation (CoA) no se está completando. El servidor del portal ha verificado la identidad del huésped a través de WeChat OAuth pero no ha indicado con éxito al controlador de Cisco Meraki que mueva el dispositivo de la VLAN del walled garden a la VLAN de invitados. Realiza el diagnóstico verificando: (1) si el controlador Meraki tiene habilitado RADIUS CoA y la IP del servidor del portal figura como un cliente CoA autorizado; (2) si el puerto UDP 3799 está abierto entre el servidor del portal y el controlador; (3) los registros del servidor del portal en busca de errores o tiempos de espera de solicitudes CoA; y (4) si el secreto compartido configurado en ambos lados coincide. Si CoA no es compatible con tu nivel de licencia de Meraki, la omisión por dirección MAC es la alternativa, aunque conlleva el riesgo de aleatorización de MAC mencionado en la guía.
Continúe leyendo esta serie
Cómo configurar un Captive Portal en Starlink: Una guía para ubicaciones remotas y marítimas
Esta guía detalla cómo omitir el hardware nativo de Starlink e integrar un Captive Portal administrado en la nube utilizando equipos de enrutamiento empresariales. Aprenderá cómo superar la limitación de CGNAT, aplicar la segmentación de VLAN, administrar las restricciones de ancho de banda satelital y garantizar el cumplimiento normativo.
Mejores prácticas de Captive Portal: Diseñando para una alta conversión y cumplimiento
Esta guía técnica ofrece a los gerentes de TI, arquitectos de red y directores de operaciones de establecimientos un plan completo para implementar captive portals que equilibren la seguridad de la red con una alta conversión de usuarios. Cubre toda la arquitectura, desde la segmentación de VLAN y la autenticación RADIUS hasta el diseño de consentimiento conforme a GDPR y la selección del método de autenticación. Basada en la experiencia operativa de Purple en más de 80,000 establecimientos y 440 millones de inicios de sesión en 2024, cada recomendación se fundamenta en datos reales de implementación.
Cómo optimizar los captive portals para una máxima seguridad de red y conversión de usuarios
Esta guía proporciona un plan técnico completo para optimizar los captive portals en entornos empresariales, abarcando la arquitectura de segmentación de red, la selección del método de autenticación, el diseño de consentimiento conforme a GDPR y la optimización de la conversión. Está dirigida a gerentes de TI, arquitectos de red y CTOs en hoteles, cadenas de retail, estadios y organizaciones del sector público que necesitan equilibrar la seguridad de la red con la captura de datos de primera mano. Purple opera la infraestructura de captive portal en más de 80,000 establecimientos con 440 millones de inicios de sesión en 2024, y los marcos de trabajo aquí presentados reflejan esa experiencia operativa.