Saltar al contenido principal

Integración de la autenticación de WeChat con Captive Portals de WiFi para invitados

Esta guía explica cómo integrar la autenticación OAuth 2.0 de WeChat en Captive Portals de WiFi para invitados empresariales. Cubre los requisitos de registro en doble plataforma, la selección de alcance (scope) para la captura de datos de primera mano, la aplicación de red mediante RADIUS Change of Authorization y el cumplimiento de GDPR y la PIPL de China. Los operadores de establecimientos en hostelería, comercio minorista y eventos encontrarán pasos concretos de implementación, casos de estudio reales y directrices de refuerzo de seguridad para implementar el inicio de sesión de WeChat en WiFi para invitados a escala.

📖 8 min de lectura📝 1,966 palabras🔧 2 ejemplos prácticos4 preguntas de práctica📚 9 definiciones clave

Escuchar esta guía

Ver transcripción del podcast
CÓMO CONFIGURAR LA AUTENTICACIÓN OAUTH DE WECHAT PARA CAPTIVE PORTALS Una sesión informativa técnica de Purple - Aproximadamente 10 minutos --- INTRODUCCIÓN Y CONTEXTO (aproximadamente 1 minuto) Bienvenido. Si es responsable de la WiFi para invitados en un hotel, cadena de tiendas, estadio o centro de conferencias que atiende a visitantes chinos, esta sesión informativa es para usted. WeChat tiene 1380 millones de usuarios activos mensuales, según los datos de Tencent de 2024. La gran mayoría se encuentra en China, pero la plataforma también tiene una presencia internacional significativa: cuatro millones de usuarios en los Estados Unidos, 12 millones en Malasia y un número creciente en el sudeste asiático, Europa y Oriente Medio. Cuando un invitado chino se conecta a su WiFi y ve una página de inicio de sesión que solo ofrece correo electrónico, Facebook o un código de cupón, se enfrenta a una fricción inmediata. Es posible que no tenga una dirección de correo electrónico local configurada en ese dispositivo. Es casi seguro que tiene WeChat. Por lo tanto, la cuestión no es si debe ofrecer el inicio de sesión con WeChat, sino cómo configurarlo correctamente, de forma segura y de manera que genere datos de primera mano que realmente pueda utilizar. Eso es lo que vamos a cubrir hoy. Repasaremos el flujo de OAuth 2.0, los dos registros de plataforma que necesita, la decisión sobre el alcance (scope) que determina qué datos recopila, el mecanismo de aplicación en el lado de la red y las consideraciones de cumplimiento normativo que importan en 2026. --- TÉCNICA AL DETALLE (aproximadamente 5 minutos) Comencemos con la arquitectura. Un Captive Portal intercepta el tráfico HTTP de un dispositivo no autenticado y lo redirige a una página de inicio de sesión. Esa página de inicio de sesión está alojada en un servidor de portal, ya sea local o en la nube. Al añadir el OAuth de WeChat, está introduciendo un proveedor de identidad de terceros en ese flujo. Esta es la secuencia. El invitado se conecta a su SSID. El punto de acceso o controlador inalámbrico detecta que el dispositivo no tiene sesión autenticada y redirige todo el tráfico HTTP a la URL de su Captive Portal. La página del portal se carga y presenta las opciones de inicio de sesión, incluido WeChat. El invitado pulsa en el inicio de sesión de WeChat. El servidor de su portal redirige el navegador al endpoint de autorización de WeChat, pasando su App ID, la URI de redirección, el tipo de respuesta de código y el alcance (scope). WeChat gestiona la autenticación por completo en sus propios servidores. Si el invitado ya ha iniciado sesión en WeChat en su navegador, ve una pantalla de consentimiento. Si utiliza el navegador integrado de WeChat, la experiencia puede ser silenciosa con el alcance snsapi_base, sin ninguna solicitud de consentimiento. A continuación, WeChat redirige de nuevo a la URI de redirección de su portal con un código de autorización temporal. El servidor de su portal intercambia ese código por un token de acceso, pasando su App ID, App Secret, el código y el tipo de concesión de código de autorización. WeChat devuelve un token de acceso, un token de actualización, el OpenID del usuario y el alcance concedido. Si solicitó el alcance snsapi_userinfo, puede realizar una segunda llamada a la API para recuperar el apodo, el avatar, el género y la ciudad del usuario. Ahora, los dos registros de plataforma. Aquí es donde fallan la mayoría de las implementaciones. WeChat tiene dos plataformas de desarrollo independientes. La plataforma abierta (WeChat Open Platform) gestiona aplicaciones de sitios web y aplicaciones móviles. La plataforma de cuentas oficiales (WeChat Official Accounts Platform) gestiona cuentas públicas, que es lo que la mayoría de los establecimientos realmente necesitan. Para un Captive Portal que atiende a invitados dentro del navegador integrado de WeChat, necesita una cuenta de servicio (Service Account) en la plataforma de cuentas oficiales. Una cuenta de suscripción (Subscription Account) no funcionará: no tiene permisos de autorización de páginas web de OAuth. Una cuenta de servicio sí los tiene y admite los alcances snsapi_base y snsapi_userinfo. Para un Captive Portal al que se accede desde un navegador móvil estándar fuera de WeChat (Chrome en Android, Safari en iOS), necesita una aplicación web (Website Application) registrada en la plataforma abierta. Esta utiliza el alcance snsapi_login y presenta un código QR que el usuario escanea con su aplicación WeChat. En la práctica, la mayoría de las implementaciones en establecimientos utilizan ambas. Un invitado en la WiFi de un hotel puede abrir el portal en Chrome, ver un código QR, escanearlo con WeChat y autenticarse. O puede seguir un enlace en el propio WeChat, aterrizar en el navegador integrado y autenticarse silenciosamente con snsapi_base. Hablemos de la selección del alcance (scope), porque este es un verdadero punto de decisión. snsapi_base devuelve solo el OpenID, un identificador único para ese usuario dentro de su cuenta oficial (Official Account). No requiere solicitud de consentimiento del usuario. La autenticación es invisible para el usuario. Esto es ideal para invitados recurrentes de los que ya tiene un perfil, o para establecimientos donde desea cero fricciones. snsapi_userinfo devuelve el OpenID más el apodo de WeChat del usuario, la foto de perfil, el género, la configuración de idioma y la ciudad. Requiere una pantalla de consentimiento explícito. La mayoría de los usuarios la aceptan, pero hay fricción. La elección correcta depende de su caso de uso. Para el registro de un invitado por primera vez en el que desea crear un perfil, utilice snsapi_userinfo y combínelo con una capa de consentimiento que cumpla con GDPR en la página de su portal. Para un invitado recurrente que ya ha dado su consentimiento y cuyo perfil ya posee, utilice snsapi_base para una reautenticación silenciosa. Ahora, el lado de la aplicación de red. Obtener un token OAuth demuestra la identidad, pero no abre la red automáticamente. Necesita un mecanismo para traducir una autenticación correcta en acceso a la red. Los dos enfoques estándar son RADIUS Change of Authorization, definido en RFC 3576, y la omisión de dirección MAC (MAC address bypass). Con RADIUS CoA, el servidor de su portal envía una solicitud CoA al controlador de red tras un OAuth correcto, y el controlador mueve el dispositivo de la VLAN no autenticada a la VLAN de invitados. Esto funciona con Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist y la mayoría de los controladores de nivel empresarial. Con MAC bypass, el servidor del portal registra la dirección MAC del dispositivo como un cliente autorizado y el controlador lo permite. MAC bypass es más sencillo de implementar pero menos seguro, porque las direcciones MAC se pueden suparentar. La plataforma Guest WiFi de Purple gestiona ambos mecanismos. Una vez completado el OAuth de WeChat, la capa en la nube de Purple envía la señal adecuada al hardware subyacente, ya sea Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme o Fortinet. El operador del establecimiento no necesita gestionar esa traducción manualmente. --- RECOMENDACIONES DE IMPLEMENTACIÓN Y ERRORES COMUNES (aproximadamente 2 minutos) Permítame indicarle las cinco cosas que hacen que fallen las implementaciones de Captive Portal con OAuth de WeChat. Primero: la discrepancia en la URI de redirección. WeChat valida la URI de redirección contrastándola con el dominio autorizado que registró en la plataforma. Si el servidor de su portal utiliza un subdominio diferente, una ruta diferente o HTTP en lugar de HTTPS, el flujo OAuth falla con el error 40029 (código no válido). Registre cada variante de dominio que utilice, incluidos los entornos de prueba (staging). Segundo: el AppSecret en el lado del cliente. Su AppSecret nunca debe aparecer en el JavaScript del lado del cliente. Pertenece a su servidor. Si se expone, cualquiera puede suplantar su aplicación y llamar a las API de WeChat en su nombre. Tercero: la falta de protección CSRF. El parámetro state en la solicitud OAuth existe específicamente para evitar la falsificación de solicitudes en sitios cruzados (CSRF). Genere un valor de estado aleatorio criptográficamente, almacénelo en la sesión del usuario y valídelo cuando WeChat redirija de nuevo. Si omite esto, tendrá una vulnerabilidad real. Cuarto: la brecha de detección del navegador integrado. El navegador integrado de WeChat establece una cadena de agente de usuario específica que contiene MicroMessenger. Si su portal no detecta esto y ofrece el flujo OAuth correcto, los usuarios tendrán una experiencia rota o un error. Quinto: la alineación con GDPR y PIPL. Si atiende a visitantes europeos, se aplica GDPR. Si atiende a visitantes chinos, se aplica la Ley de Protección de Información Personal de China (PIPL). Ambas requieren una base jurídica para el tratamiento, una limitación clara de la finalidad y la minimización de datos. snsapi_base es más fácil de justificar bajo los principios de minimización de datos que snsapi_userinfo. Recopile lo que recopile, documente su base jurídica y su período de retención. --- PREGUNTAS Y RESPUESTAS RÁPIDAS (aproximadamente 1 minuto) ¿Puedo utilizar el inicio de sesión de WeChat en un portal que también ofrece inicio de sesión por correo electrónico y SMS? Sí. La mayoría de las plataformas de portales empresariales, incluida Purple, admiten múltiples métodos de autenticación en la misma página del portal. ¿Funciona el OAuth de WeChat en iOS? Sí. El inicio de sesión de WeChat en Safari en iOS funciona a través del flujo de código QR o del flujo de redirección. La propia aplicación WeChat gestiona la autenticación. ¿Qué ocurre si la API de WeChat no está disponible? Implemente una alternativa. Si la llamada a la API de WeChat agota el tiempo de espera o devuelve un error, redirija al usuario a un método de inicio de sesión alternativo. ¿Puedo utilizar el OpenID como identificador de cliente persistente? Dentro de su cuenta oficial (Official Account), sí. Para la resolución de identidad entre cuentas en múltiples propiedades, utilice el UnionID en su lugar. --- RESUMEN Y PRÓXIMOS PASOS (aproximadamente 1 minuto) Para resumir. La autenticación OAuth de WeChat para Captive Portals es un ejercicio de registro en dos plataformas, una decisión de alcance (scope), una integración de aplicación de red y una revisión de cumplimiento normativo. Si hace bien esas cuatro cosas, tendrá un método de inicio de sesión que sirve a más de mil millones de visitantes potenciales con cero fricciones de contraseña. Los pasos prácticos: determine si sus visitantes encuentran el portal dentro del navegador integrado de WeChat o en un navegador móvil estándar. Decida el alcance (scope): snsapi_base para invitados recurrentes, snsapi_userinfo para el registro por primera vez con consentimiento. Confirme que el hardware de su red es compatible con RADIUS CoA. Revise su aviso de privacidad frente a GDPR y PIPL. Pruebe la URI de redirección, la validación del parámetro de estado y la detección del navegador integrado antes de la puesta en marcha. Si desea ver cómo gestiona Purple el OAuth de WeChat como parte de una plataforma más amplia de analítica y WiFi para invitados (Guest WiFi) —en 80 000 establecimientos y 440 millones de inicios de sesión en 2024—, visite purple.ai o hable con su equipo de cuentas. Gracias por su atención. --- FIN DEL GUION

header_image.png

Resumen ejecutivo

Cuando un visitante chino se conecta a su red empresarial y se encuentra con un Captive Portal que solo ofrece correo electrónico, Facebook o un código de cupón, se introduce una fricción inmediata. WeChat tiene 1380 millones de usuarios activos mensuales, según los datos de Tencent de 2024. Integrar capacidades de inicio de sesión de WeChat en WiFi para invitados no es una comodidad de hostelería: es un requisito técnico para capturar datos de primera mano de este grupo demográfico sin fricciones.

Esta guía detalla la arquitectura técnica para integrar la autenticación OAuth 2.0 de WeChat en Captive Portals. Explica el registro en doble plataforma necesario para admitir tanto los navegadores móviles estándar como el navegador integrado de WeChat, evalúa las ventajas y desventajas entre los alcances snsapi_base y snsapi_userinfo para la recopilación de datos, y describe cómo aplicar el acceso a la red mediante RADIUS Change of Authorization (CoA) o la omisión de autenticación MAC (MAC authentication bypass). También cubre las configuraciones de seguridad y los mandatos de cumplimiento (GDPR y la PIPL de China) necesarios para implementar esto a escala en infraestructuras Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme y Fortinet.


Análisis técnico detallado: arquitectura OAuth 2.0 de WeChat

Un Captive Portal intercepta el tráfico HTTP de un dispositivo no autenticado y lo redirige a una página de inicio de sesión alojada en un servidor de portal. Añadir la autenticación de WeChat introduce un proveedor de identidad de terceros en este flujo utilizando el protocolo OAuth 2.0, el mismo estándar utilizado por Google, Microsoft Entra ID y Okta para la identidad federada.

oauth_flow_diagram.png

La secuencia de autenticación funciona de la siguiente manera. El invitado se conecta al SSID. El punto de acceso o controlador inalámbrico detecta la sesión no autenticada y redirige el tráfico HTTP a la URL del Captive Portal. El invitado selecciona el inicio de sesión de WeChat en la página del portal. El servidor del portal redirige el navegador al endpoint de autorización de WeChat en open.weixin.qq.com, pasando el AppID, la URI de redirección, el tipo de respuesta de code y el alcance (scope) solicitado. WeChat gestiona la autenticación en sus propios servidores. Si el invitado utiliza el navegador integrado de WeChat con el alcance snsapi_base, la autenticación es silenciosa: no aparece ninguna solicitud de consentimiento. Si utiliza snsapi_userinfo, WeChat presenta una pantalla de consentimiento. A continuación, WeChat redirige de nuevo a la URI de redirección del portal con un código de autorización temporal. El servidor del portal intercambia este código por un token de acceso llamando a api.weixin.qq.com/sns/oauth2/access_token, pasando el AppID, AppSecret, el código y un tipo de concesión de authorization_code. WeChat devuelve un token de acceso, un token de actualización, el OpenID del usuario y el alcance concedido. Si se concedió snsapi_userinfo, el servidor realiza una segunda llamada a la API para recuperar el apodo, el avatar, el género y la ciudad del usuario.

El requisito de registro en doble plataforma

La mayoría de las implementaciones fallan en la etapa de registro. WeChat opera dos plataformas de desarrollo independientes, y las implementaciones empresariales suelen requerir ambas.

Plataforma URL Tipo de cuenta requerido Alcance admitido Contexto del navegador
Plataforma de cuentas oficiales mp.weixin.qq.com Cuenta de servicio (Service Account) snsapi_base, snsapi_userinfo Navegador integrado de WeChat
Plataforma abierta open.weixin.qq.com Aplicación web (Website Application) snsapi_login Navegador móvil estándar

Para los invitados que acceden al portal dentro del navegador integrado de WeChat, necesita una cuenta de servicio (Service Account) en la plataforma de cuentas oficiales. Una cuenta de suscripción (Subscription Account) no funcionará: carece de permisos de autorización de páginas web de OAuth. Para los invitados que acceden al portal desde Chrome en Android o Safari en iOS, necesita una aplicación web (Website Application) en la plataforma abierta, que utiliza el alcance snsapi_login y presenta un código QR para que el usuario lo escanee.

En la práctica, la mayoría de las implementaciones en establecimientos utilizan ambas. Un invitado en un hotel puede abrir el portal en Chrome, ver un código QR, escanearlo con WeChat y autenticarse. O puede seguir un enlace en el propio WeChat, aterrizar en el navegador integrado y autenticarse silenciosamente con snsapi_base.

Selección de alcance: captura de datos frente a fricción

scope_comparison.png

El alcance que solicite determina qué datos recopila y la fricción que experimenta el invitado. Este es un verdadero punto de decisión con implicaciones de cumplimiento normativo.

snsapi_base devuelve solo el OpenID, un identificador único para ese usuario dentro de su cuenta oficial (Official Account). No requiere solicitud de consentimiento del usuario. La autenticación es invisible para el invitado. Utilice esto para invitados recurrentes cuyos perfiles ya posee, o cuando priorice un acceso sin fricciones. Bajo los principios de minimización de datos de GDPR y PIPL, snsapi_base es más fácil de justificar.

snsapi_userinfo devuelve el OpenID más el apodo, la foto de perfil, el género y la ciudad del usuario. Requiere una pantalla de consentimiento explícito. Utilice esto para el registro de invitados por primera vez cuando necesite crear un perfil, combinado con una capa de consentimiento conforme en la página de su portal.

UnionID para implementaciones en múltiples propiedades

El OpenID es único para la combinación de un usuario y una cuenta oficial (Official Account) específica. Un grupo hotelero con 20 propiedades, cada una con su propia cuenta oficial, verá 20 OpenID diferentes para el mismo invitado. El UnionID resuelve esto. Es un identificador único que representa a un usuario en todas las cuentas oficiales (Official Accounts) y aplicaciones vinculadas a la misma cuenta de la plataforma abierta (Open Platform). Vincule sus cuentas oficiales a su cuenta de la plataforma abierta y el UnionID se devolverá en la respuesta OAuth. Esta es la base de crreconocimiento de huéspedes de la propiedad.


Guía de implementación

Mecanismos de control de red

Obtener un token de OAuth demuestra la identidad, pero no abre la red. Debe enviar una señal al controlador para permitir el tráfico.

RADIUS Change of Authorization (CoA), definido en RFC 3576, es el enfoque empresarial recomendado. Tras un OAuth correcto, el servidor del portal envía una solicitud de CoA al controlador de red. El controlador mueve el dispositivo de la VLAN de preautenticación a la VLAN de invitados. Esto funciona con Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme y Fortinet.

MAC Authentication Bypass (MAB) registra la dirección MAC del dispositivo como un cliente autorizado en la base de datos RADIUS. El controlador permite el acceso basándose en esa MAC. MAB es más sencillo de implementar pero poco fiable: los dispositivos iOS y Android modernos aleatorizan las direcciones MAC de forma predeterminada, lo que rompe la asociación de la sesión al volver a conectarse.

La plataforma Guest WiFi de Purple automatiza esta traducción. Una vez completado el OAuth de WeChat, la capa en la nube de Purple envía la señal CoA o MAB adecuada al hardware subyacente, eliminando la configuración manual de la VLAN.

Configuración de seguridad

Tres configuraciones son innegociables.

  1. Proteger el AppSecret. El AppSecret nunca debe aparecer en el JavaScript del lado del cliente. Debe permanecer en su servidor. Si se expone, los atacantes pueden suplantar su aplicación y realizar llamadas a las APIs de WeChat en su nombre.
  2. Implementar protección CSRF. Genere un valor state criptográficamente aleatorio, almacénelo en la sesión del usuario y valídelo cuando WeChat redirija de vuelta. Esto evita los ataques de falsificación de petición en sitios cruzados tal como se define en RFC 6749.
  3. Registrar todas las variantes de URI de redirección. WeChat valida la URI de redirección con su dominio registrado. Registre cada subdominio y variante de ruta que utilice, incluidos los entornos de pruebas (staging), para evitar el error 40029 (código no válido).

Detección de navegadores integrados (in-app)

El navegador integrado de WeChat establece una cadena de agente de usuario que contiene MicroMessenger. Su portal debe detectar esta cadena y redirigir en consecuencia: el flujo de Cuenta Oficial para el navegador integrado, o el flujo de código QR de la Plataforma Abierta para navegadores estándar. No detectar esto produce experiencias de usuario defectuosas o errores de autenticación.

hotel_wechat_wifi.png


Buenas prácticas y cumplimiento normativo

Cumplimiento de GDPR

Si ofrece servicios a visitantes europeos o opera en Europa, el GDPR se aplica a los datos que recopila a través de WeChat OAuth. Debe establecer una base legal para el tratamiento, normalmente el consentimiento o el interés legítimo. Debe proporcionar un aviso de privacidad claro en el Captive Portal antes de la autenticación. Debe atender las solicitudes de acceso y de supresión de los interesados. Para obtener un marco de cumplimiento detallado, consulte The Compliance Playbook: GDPR and Guest WiFi Data Privacy .

Cumplimiento de PIPL

La Ley de Protección de Información Personal de China (PIPL) se aplica cuando se tratan datos personales de ciudadanos chinos. Al igual que el GDPR, la PIPL exige una limitación clara de la finalidad, la minimización de datos y una base legal documentada. snsapi_base es más fácil de justificar bajo la minimización de datos que snsapi_userinfo. Independientemente de lo que recopile, documente su base legal y el periodo de retención antes del lanzamiento.

Segmentación de red

Aísle el tráfico de la WiFi de invitados de su red corporativa mediante la segmentación de VLAN. Los invitados autenticados a través de WeChat deben dirigirse a una VLAN de invitados dedicada con acceso exclusivo a Internet, sin acceso a los sistemas internos. Esto se alinea con los requisitos de PCI DSS para el aislamiento del entorno de datos de titulares de tarjetas y las prácticas generales de seguridad empresarial. Para obtener más información sobre la arquitectura de segmentación, consulte Bandwidth Management: A Practical Guide for 2026 .

Autenticación de respaldo

Si la API de WeChat no está disponible, su portal debe redirigir a un método de inicio de sesión alternativo. No deje a los invitados con una pantalla en blanco. Una alternativa por correo electrónico o SMS garantiza la continuidad. Esto es especialmente importante para establecimientos en entornos de Transporte y Sanidad donde la conectividad es una obligación del servicio.


Casos de estudio reales

Hostelería: grupo hotelero de lujo

Un hotel de lujo de 400 habitaciones en Londres recibe a una proporción significativa de huéspedes de China continental. Su Captive Portal existente requería una dirección de correo electrónico y verificación por SMS. Los números de móvil chinos suelen fallar al recibir SMS de proveedores europeos, y muchos huéspedes no tienen un correo electrónico local configurado en su dispositivo. El resultado fue una tasa de abandono del 60 % en el portal.

El hotel registró una Cuenta de Servicio en la Plataforma de Cuentas Oficiales y una Aplicación Web en la Plataforma Abierta. El portal detecta el agente de usuario MicroMessenger y activa snsapi_base para los usuarios del navegador integrado, conectándolos en menos de tres segundos sin pantalla de consentimiento. Huéspedes que llegan a través de Chrome o Safari ven un código QR. En estancias posteriores, se reconoce el mismo OpenID y el huésped se vuelve a autenticar de forma silenciosa. El CRM del hotel registra la visita de regreso, lo que permite comunicaciones personalizadas antes de la llegada. Para obtener más información sobre la implementación de WiFi en entornos hoteleros, consulte Hostelería .

Retail: analítica de centros comerciales

Un gran centro comercial quiere recopilar datos demográficos de los compradores chinos para fundamentar la combinación de inquilinos y las decisiones de marketing. Necesitan la ciudad de origen, el género y la frecuencia de las visitas. snsapi_base es insuficiente: necesitan snsapi_userinfo. El portal solicita el alcance completo de userinfo. El invitado ve una pantalla de consentimiento de WeChat y pulsa Permitir. La plataforma de analítica del centro comercial, integrada con WiFi Analytics de Purple, recibe un flujo de datos demográficos verificados. Los sábados por la tarde, el 40 % de los usuarios de WiFi proceden de una región específica. Esos datos directe informa sobre a qué marcas dirigirse para eventos pop-up. Para obtener más información sobre implementaciones de WiFi en el sector minorista, consulte Retail .


Resolución de problemas y mitigación de riesgos

Los cinco modos de fallo más comunes en las implementaciones de captive portal con WeChat OAuth son los siguientes.

Discrepancia en la URI de redirección (error 40029). WeChat valida la URI de redirección con respecto al dominio registrado. Cualquier discrepancia en el subdominio, la ruta o el protocolo hace que falle el intercambio de códigos. Registre todas las variantes, incluidos los entornos de staging.

Exposición del AppSecret. Integrar el AppSecret en el código del lado del cliente es el error de seguridad más grave. Mueva toda la lógica de intercambio de tokens al servidor.

Falta de protección CSRF. Omitir la validación del parámetro state deja al portal vulnerable a la falsificación de peticiones en sitios cruzados (CSRF). Genere un valor criptográficamente aleatorio por sesión y valídelo en la devolución de llamada (callback).

Fallo en la detección del navegador integrado (in-app). No detectar MicroMessenger en el agente de usuario (user agent) significa que a los usuarios del navegador integrado se les ofrece el flujo de OAuth incorrecto, lo que genera errores.

La aleatorización de direcciones MAC interrumpe las sesiones MAB. Los sistemas operativos móviles modernos aleatorizan las direcciones MAC. Los invitados que utilicen la autenticación basada en MAB perderán su sesión al volver a conectarse. Actualice a RADIUS CoA para una gestión de sesiones fiable. Para obtener orientación sobre la configuración segura de WiFi, consulte Qué es un WiFi seguro: Guía esencial para empresas 2026 .


ROI e impacto empresarial

La implementación de la funcionalidad de WiFi para invitados con inicio de sesión de WeChat tiene tres impactos medibles.

Mayor tasa de autenticación. Eliminar el punto de fallo de la verificación por SMS y el requisito de introducir el correo electrónico aumenta el porcentaje de visitantes chinos que se conectan correctamente. Una tasa de abandono del 60 % es una base de referencia realista para los portales que no son compatibles con WeChat.

Calidad de los datos de origen (first-party data). Los perfiles autenticados con WeChat incluyen un OpenID verificado y, con snsapi_userinfo, atributos demográficos obtenidos directamente de la plataforma social. Estos datos se integran en las plataformas de analítica para impulsar un marketing dirigido sin depender de cookies de terceros.

Reducción de los costes de soporte. El inicio de sesión sin fricciones reduce las llamadas de soporte a recepción y al departamento de TI por parte de invitados internacionales que intentan solucionar problemas de conexión.

Purple opera en más de 80.000 establecimientos y procesó 440 millones de inicios de sesión en 2024 (datos internos de Purple). La plataforma cuenta con la certificación ISO 27001, cumple con el GDPR y la CCPA, y mantiene un tiempo de actividad del 99,999 %. Para los establecimientos de los sectores de Retail y Hospitality , la autenticación de WeChat transforma la red de un centro de costes a un canal fiable de adquisición de datos de origen (first-party data).

Definiciones clave

Captive Portal

Una página web que intercepta el tráfico HTTP de un dispositivo no autenticado y requiere que el usuario interactúe con ella antes de que se le conceda acceso a la red.

La interfaz principal donde se presenta al invitado la opción de inicio de sesión de WeChat. El servidor del portal aloja esta página y orquesta el flujo OAuth.

OAuth 2.0

Un protocolo de autorización estándar del sector (RFC 6749) que permite a una aplicación de terceros obtener acceso limitado a un servicio HTTP en nombre de un usuario.

El protocolo subyacente que utiliza WeChat para pasar tokens de autenticación al servidor del portal sin exponer las credenciales del usuario. El mismo protocolo utilizado por Microsoft Entra ID, Okta y Google Workspace.

OpenID

Un identificador alfanumérico único asignado a un usuario de WeChat específico para una cuenta oficial (Official Account) concreta.

Utilizado como clave principal para identificar a los invitados recurrentes en la base de datos de analítica de WiFi. Cambia por cuenta oficial (Official Account); utilice UnionID para el reconocimiento entre diferentes propiedades.

UnionID

Un identificador único de WeChat que representa a un usuario en todas las cuentas oficiales (Official Accounts) y aplicaciones vinculadas a la misma cuenta de la plataforma abierta (Open Platform).

Esencial para grupos hoteleros, cadenas de tiendas y operadores de estadios con múltiples establecimientos que necesitan reconocer al mismo invitado en todo su patrimonio.

RADIUS CoA (Change of Authorization)

Una extensión del protocolo RADIUS (RFC 3576) que permite a un servidor RADIUS cambiar dinámicamente los atributos de autorización de una sesión activa.

El método seguro utilizado para mover el dispositivo de un invitado de una VLAN de preautenticación aislada a la VLAN de internet activa tras un inicio de sesión correcto en WeChat. Compatible con Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme y Fortinet.

snsapi_base

Un alcance (scope) OAuth de WeChat que devuelve únicamente el OpenID del usuario y no requiere ninguna solicitud de consentimiento por parte del usuario.

El alcance (scope) recomendado para la reautenticación de invitados recurrentes. Más fácil de justificar bajo los principios de minimización de datos de GDPR y PIPL.

snsapi_userinfo

Un alcance (scope) OAuth de WeChat que devuelve el OpenID, el apodo, el avatar, el género y la ciudad del usuario, y requiere una pantalla de consentimiento explícito.

Utilizado para el registro de invitados por primera vez cuando se requieren datos demográficos para analítica. Requiere una base jurídica documentada bajo GDPR y PIPL.

PIPL (Personal Information Protection Law)

La legislación integral de privacidad de datos de China, en vigor desde noviembre de 2021, que regula el tratamiento de la información personal de personas físicas ubicadas en China.

Se aplica cuando los establecimientos procesan datos de ciudadanos chinos a través de OAuth de WeChat. Requiere un consentimiento claro, limitación de la finalidad, minimización de datos y un mecanismo de eliminación.

AppSecret

Una clave criptográfica confidencial emitida por WeChat durante el registro de la aplicación, utilizada para autenticar las llamadas a la API desde el servidor del portal.

Debe almacenarse exclusivamente en el lado del servidor. Su exposición en JavaScript del lado del cliente permite a los atacantes suplantar la aplicación y realizar llamadas maliciosas a las API de WeChat.

Ejemplos prácticos

Un hotel de lujo de 400 habitaciones en Londres tiene una tasa de abandono del portal del 60 % entre los huéspedes de China continental. El portal actual requiere verificación por correo electrónico y SMS. El director de TI necesita implementar la autenticación de WeChat manteniendo el cumplimiento de GDPR y la seguridad de la red.

Paso 1: Registrar una cuenta de servicio (Service Account) en la plataforma de cuentas oficiales de WeChat (mp.weixin.qq.com) y una aplicación web en la plataforma abierta de WeChat (open.weixin.qq.com). Paso 2: Configurar el portal para detectar la cadena de agente de usuario de MicroMessenger. Si se detecta, activar el flujo OAuth snsapi_base para una autenticación silenciosa. Si no se detecta, presentar el flujo de código QR. Paso 3: Añadir un aviso de privacidad que cumpla con GDPR y una casilla de verificación de consentimiento en la página del portal antes de que se active el botón de inicio de sesión de WeChat. El aviso debe indicar: datos recopilados (solo OpenID), finalidad (acceso a WiFi para invitados y reconocimiento de visitas recurrentes) y período de retención. Paso 4: Tras el intercambio correcto de tokens OAuth, el servidor del portal emite una solicitud RADIUS CoA al controlador Cisco Meraki, moviendo el dispositivo del invitado de la VLAN de preautenticación a la VLAN de invitados segmentada. Paso 5: Almacenar el OpenID asociado a la dirección MAC del dispositivo en la base de datos de invitados. En visitas posteriores, el OpenID recurrente activará la autenticación silenciosa.

Comentario del examinador: Este enfoque aborda correctamente tanto los requisitos técnicos como los de cumplimiento. El uso de snsapi_base se alinea con los principios de minimización de datos de GDPR, reduciendo el riesgo legal y eliminando al mismo tiempo el punto de fallo de la verificación por SMS. RADIUS CoA garantiza una segmentación de red segura y automatizada. La casilla de verificación de consentimiento cumple con el requisito de GDPR de contar con una base jurídica documentada. La decisión clave es elegir snsapi_base en lugar de snsapi_userinfo: el hotel no necesita datos demográficos para este caso de uso, por lo que recopilarlos introduciría obligaciones de cumplimiento innecesarias.

Un centro comercial quiere capturar datos de género y ciudad de los compradores chinos a través de la WiFi para invitados para introducirlos en su plataforma de analítica. Actualmente utilizan MAC Authentication Bypass para su portal existente que se ejecuta en hardware HPE Aruba.

Paso 1: Registrar una cuenta de servicio (Service Account) en la plataforma de cuentas oficiales de WeChat. Paso 2: Configurar el portal para utilizar el alcance (scope) snsapi_userinfo para recuperar el género y la ciudad. Paso 3: Añadir una pantalla de consentimiento clara que explique el intercambio de valor: WiFi gratuito a cambio del acceso a los datos del perfil. El consentimiento debe ser explícito y detallado tanto bajo GDPR como bajo PIPL. Paso 4: Tras la autenticación, el servidor del portal registra la dirección MAC del dispositivo en la base de datos RADIUS. El controlador HPE Aruba permite el acceso a través de MAB. Paso 5: Documentar la base jurídica (consentimiento), la finalidad (analítica del establecimiento y marketing) y el período de retención (24 meses) en un registro de tratamiento de datos. Proporcionar un mecanismo de eliminación de datos.

Comentario del examinador: El alcance snsapi_userinfo recupera correctamente los datos demográficos requeridos. Sin embargo, depender de MAB introduce un riesgo operativo significativo: iOS 14+ y Android 10+ aleatorizan las direcciones MAC por defecto, lo que significa que los invitados perderán su sesión autenticada al volver a conectarse y se verán obligados a volver a autenticarse. El centro comercial debería planificar la migración a RADIUS CoA en HPE Aruba para resolver esto. La documentación de cumplimiento de PIPL no es opcional: es un requisito legal para procesar datos de ciudadanos chinos, independientemente de dónde se encuentre el establecimiento.

Preguntas de práctica

Q1. Está implementando un Captive Portal en un estadio. Desea que los abonados de temporada recurrentes que se hayan autenticado previamente se conecten automáticamente sin ver una pantalla de inicio de sesión en visitas posteriores. ¿Qué alcance (scope) OAuth de WeChat debería implementar para el flujo de reautenticación y por qué?

Sugerencia: Considere qué alcance (scope) permite la autenticación silenciosa sin solicitar el consentimiento del usuario en cada visita.

Ver respuesta modelo

Utilice snsapi_base. Este alcance devuelve solo el OpenID del usuario y no requiere solicitud de consentimiento, lo que permite una reautenticación silenciosa. En la primera visita, almacena el OpenID en el perfil del aficionado. En visitas posteriores, el portal detecta el OpenID recurrente a través de snsapi_base, confirma la coincidencia y emite un RADIUS CoA para conceder el acceso, todo ello sin que el aficionado vea una pantalla de inicio de sesión. Esto también se alinea con los principios de minimización de datos de GDPR, ya que no está recopilando datos adicionales más allá de lo necesario para la función de autenticación.

Q2. Durante las pruebas, su portal se redirige correctamente a WeChat, el usuario concede el consentimiento y WeChat redirige de nuevo a su portal. Sin embargo, los registros del servidor del portal muestran el error de OAuth 40029 (código no válido). ¿Cuál es el error de configuración más probable y cómo lo resuelve?

Sugerencia: WeChat valida estrictamente el destino al que envía el código de autorización contrastándolo con una lista registrada.

Ver respuesta modelo

La causa más probable es una discrepancia en la URI de redirección. WeChat valida la URI de redirección en la solicitud OAuth contrastándola con el dominio autorizado registrado en la plataforma. Si el servidor del portal utiliza un subdominio diferente, una ruta diferente o HTTP en lugar de HTTPS, el intercambio de códigos falla con el error 40029. Resolución: inicie sesión en la plataforma de desarrolladores de WeChat, navegue a la configuración de su cuenta de servicio (Service Account) o aplicación web (Website Application) y añada cada variante de URI de redirección que utilice, incluidos los subdominios de prueba (staging), diferentes rutas y versiones HTTPS. Asegúrese de que el parámetro redirect_uri en su solicitud OAuth coincida exactamente con una de las URI registradas, incluida la codificación URL.

Q3. Un responsable de TI propone integrar el AppSecret de WeChat en el JavaScript del front-end del Captive Portal para acelerar el proceso de intercambio de tokens directamente desde el navegador del cliente. ¿Por qué debe rechazar esta propuesta y cuál es la arquitectura correcta?

Sugerencia: Considere las implicaciones de seguridad de exponer claves criptográficas en código de acceso público.

Ver respuesta modelo

Rechace esta propuesta. El AppSecret es una clave criptográfica confidencial. Integrarlo en el JavaScript del lado del cliente lo expone a cualquiera que vea el código fuente de la página o intercepte el tráfico de red. Un atacante podría extraer el AppSecret y suplantar la aplicación, llamando a las API de WeChat en nombre del establecimiento, accediendo a los datos de los usuarios y comprometiendo potencialmente toda la cuenta oficial (Official Account). La arquitectura correcta: la página del portal del lado del cliente recibe el código de autorización de WeChat y lo reenvía al servidor del portal a través de una llamada a la API del lado del servidor. El servidor del portal almacena el AppSecret en una variable de entorno segura y realiza el intercambio de tokens con la API de WeChat. El AppSecret nunca sale del servidor.

Q4. Un grupo hotelero con 15 propiedades en toda Europa quiere crear un perfil de invitado unificado que reconozca cuándo el mismo huésped chino se aloja en diferentes propiedades. Cada propiedad tiene su propia cuenta oficial (Official Account) de WeChat. ¿Qué identificador de WeChat deberían utilizar y qué configuración se requiere?

Sugerencia: El OpenID es específico de cada cuenta. Existe un identificador diferente diseñado para el reconocimiento entre cuentas.

Ver respuesta modelo

Utilice el UnionID. El OpenID cambia por cuenta oficial (Official Account), por lo que el mismo invitado tendrá 15 OpenID diferentes en 15 cuentas. El UnionID es un identificador estable que representa a un usuario en todas las cuentas oficiales (Official Accounts) y aplicaciones vinculadas a la misma cuenta de la plataforma abierta (Open Platform). Configuración requerida: vincular las 15 cuentas oficiales (Official Accounts) a una única cuenta de la plataforma abierta (Open Platform) de WeChat. Una vez vinculadas, el UnionID se devuelve en la respuesta OAuth cuando el usuario ha autorizado al menos una de las cuentas vinculadas. Utilice el UnionID como clave principal en el CRM de invitados para crear perfiles entre propiedades y reconocer a los invitados recurrentes independientemente de la propiedad que visiten.

Continúe leyendo esta serie

Cómo configurar un Captive Portal en Starlink: guía para establecimientos remotos y marítimos

Esta guía detalla cómo omitir el hardware nativo de Starlink e integrar un Captive Portal gestionado en la nube utilizando equipos de enrutamiento empresariales. Aprenderá a superar la limitación de CGNAT, aplicar la segmentación de VLAN, gestionar las limitaciones de ancho de banda satelital y garantizar el cumplimiento normativo.

Leer la guía →

Hotel Guest WiFi Management: Integrating PMS, Portals, and Brand Standards

Esta guía técnica detalla cómo diseñar redes WiFi hoteleras de nivel empresarial, centrándose en la segmentación de VLAN, la integración de PMS para la gestión automatizada de sesiones y la optimización del Captive Portal para la captura de datos de conformidad con el GDPR.

Leer la guía →

Cómo optimizar los captive portals para una máxima seguridad de red y conversión de usuarios

Esta guía proporciona un esquema 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 la GDPR y la optimización de la conversión. Está dirigida a responsables de TI, arquitectos de red y CTO de hoteles, cadenas de tiendas, 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 portals 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.

Leer la guía →