Vai al contenuto principale

Integrazione dell'autenticazione WiFi WeChat: onboarding tramite Captive Portal per i clienti APAC

WeChat conta 1,41 miliardi di utenti attivi mensili, il che lo rende l'identità digitale principale per i consumatori cinesi a livello globale. Questa guida spiega come integrare l'autenticazione OAuth 2.0 di WeChat nei Captive Portal aziendali per le sedi APAC, coprendo la registrazione sulla piattaforma, la selezione dell'ambito, l'applicazione della Change of Authorisation di RADIUS e la conformità al doppio framework con il GDPR e la PIPL cinese. Si rivolge a responsabili IT, architetti di rete e direttori operativi delle sedi che devono intervenire in questo trimestre.

📖 9 minuti di lettura📝 2,130 parole🔧 2 esempi pratici4 domande di esercitazione📚 10 definizioni chiave

Ascolta questa guida

Visualizza trascrizione del podcast
COME CONFIGURARE L'AUTENTICAZIONE OAUTH DI WECHAT PER I CAPTIVE PORTAL Un briefing tecnico di Purple - Circa 10 minuti INTRODUZIONE E CONTESTO (circa 1 minuto) Benvenuto. Se sei responsabile del WiFi per gli ospiti in un hotel, una catena retail, uno stadio o un centro congressi che accoglie visitatori cinesi, questo briefing è per te. WeChat conta 1,41 miliardi di utenti attivi mensili nel 2025, secondo i dati di Tencent. La stragrande maggioranza si trova in Cina, ma la piattaforma ha anche un'impronta internazionale significativa. La Malesia conta 12 milioni di utenti WeChat. Il Giappone 5,5 milioni. La Corea del Sud, 5 milioni. E i numeri sono in crescita in tutto il Sud-est asiatico, in Medio Oriente e in Europa. Quando un ospite cinese si connette al tuo WiFi e visualizza una pagina di login che richiede solo email, Facebook o un codice voucher, incontra un ostacolo immediato. Potrebbe non avere un indirizzo email locale configurato su quel dispositivo. Quasi certamente ha WeChat. Quindi la domanda non è se offrire il login tramite WeChat. È come configurarlo correttamente, in modo sicuro e tale da generare dati di prima parte che si possano effettivamente utilizzare. Questo è ciò che tratteremo oggi. Esamineremo il flusso OAuth 2.0, le due registrazioni di piattaforma necessarie, la decisione sullo scope che determina quali dati raccogliere, il meccanismo di enforcement lato rete e le considerazioni di conformità rilevanti nel 2026. APPROFONDIMENTO TECNICO (circa 5 minuti) Cominciamo dall'architettura. Un Captive Portal intercetta il traffico HTTP da un dispositivo non autenticato e lo reindirizza a una pagina di login. Questa pagina di login è ospitata su un server portal, in locale o nel cloud. Quando aggiungi l'OAuth di WeChat, inserisci un provider di identità terzo in quel flusso. Ecco la sequenza. L'ospite si connette al tuo SSID. L'access point o il controller wireless rileva che il dispositivo non ha una sessione autenticata e reindirizza tutto il traffico HTTP all'URL del tuo Captive Portal. La pagina del portale si carica e presenta le opzioni di login, tra cui WeChat. L'ospite tocca il login con WeChat. Il server del tuo portale reindirizza il browser all'endpoint di autorizzazione di WeChat, passando l'AppID, l'URI di reindirizzamento, il tipo di risposta 'code' e lo scope. WeChat gestisce l'autenticazione interamente sui propri server. Se l'ospite ha già effettuato l'accesso a WeChat nel browser, visualizza una schermata di consenso. Se utilizza il browser in-app di WeChat, l'esperienza può avvenire in modalità invisibile con lo scope base snsapi, ovvero senza alcuna richiesta di consenso. WeChat reindirizza poi all'URI di reindirizzamento del portale con un codice di autorizzazione temporaneo. Il server del portale scambia quel codice con un token di accesso chiamando l'API di WeChat. WeChat restituisce un token di accesso, un token di aggiornamento, l'OpenID dell'utente e lo scope concesso. Se hai richiesto lo scope userinfo di snsapi, puoi effettuare una seconda chiamata API per recuperare il nickname, l'avatar, il sesso e la città dell'utente. Ora, parliamo delle due registrazioni della piattaforma. È qui che la maggior parte delle implementazioni fallisce. WeChat ha due piattaforme di sviluppo distinte. La WeChat Open Platform gestisce le applicazioni web e le app mobili. La WeChat Official Accounts Platform gestisce gli account pubblici, che è ciò di cui la maggior parte delle location ha effettivamente bisogno. Per un captive portal che serve gli ospiti all'interno del browser in-app di WeChat, è necessario un Service Account sulla Official Accounts Platform. Un Subscription Account non funzionerà. Non dispone dei permessi di autorizzazione per le pagine web tramite OAuth. Un Service Account sì, e supporta sia lo scope snsapi base che lo scope snsapi userinfo. Per un captive portal effettuato da un browser mobile standard al di fuori di WeChat, come Chrome su Android o Safari su iOS, è necessaria una Website Application registrata sulla Open Platform. Questa utilizza lo scope snsapi login e presenta un codice QR che l'utente scansiona con la propria app WeChat. In pratica, la maggior parte delle implementazioni nelle location utilizza entrambi. Un ospite in un hotel potrebbe aprire il portale in Chrome, vedere un codice QR, scansionarlo con WeChat e autenticarsi. Oppure potrebbe seguire un link all'interno di WeChat stesso, atterrare nel browser in-app e autenticarsi silenziosamente con snsapi base. Parliamo della selezione dello scope, perché questo è un vero e proprio punto decisionale. Lo scope snsapi base restituisce solo l'OpenID. Si tratta di un identificatore univoco per quell'utente all'interno del tuo Official Account. Non richiede alcuna richiesta di consenso all'utente. L'autenticazione è invisibile per l'utente. Questo è l'ideale per gli ospiti abituali che hai già profilato, o per le location in cui desideri un attrito pari a zero al costo di zero nuovi dati. Lo scope snsapi userinfo restituisce l'OpenID più il nickname di WeChat dell'utente, l'immagine del profilo, il genere, l'impostazione della lingua e la città. Richiede una schermata di consenso esplicito. L'utente visualizza una richiesta in cui viene chiesto se consente al tuo Official Account di accedere alle sue informazioni. La maggior parte degli utenti accetta, ma si crea un attrito. La scelta giusta dipende dal tuo caso d'uso. Per la registrazione di un ospite al primo accesso in cui desideri creare un profilo, utilizza snsapi userinfo e associalo a un livello di consenso conforme al GDPR sulla pagina del tuo portale. Per un ospite di ritorno che ha già fornito il consenso e di cui possiedi già il profilo, utilizza snsapi base per una riautenticazione silenziosa. Ora, passiamo al lato dell'applicazione di rete. L'ottenimento di un token OAuth attesta l'identità, ma non apre automaticamente la rete. È necessario un meccanismo per tradurre un'autenticazione riuscita in accesso alla rete. I due approcci standard sono il RADIUS Change of Authorisation, definito in RFC 3576, e il MAC address bypass. Con il RADIUS CoA, il server del portale invia una richiesta CoA al controller di rete dopo un OAuth andato a buon fine, e il controller sposta il dispositivo dalla VLAN non autenticata alla VLAN ospiti. Funziona con Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme e Fortinet. Con il bypass del MAC, il server del portale registra l'indirizzo MAC del dispositivo come client autorizzato e il controller lo consente. Il bypass del MAC è più semplice da implementare ma meno sicuro, in quanto gli indirizzi MAC possono essere contraffatti e gli smartphone moderni utilizzano sempre più la randomizzazione dell'indirizzo MAC, il che interrompe il meccanismo alla riconnessione. La piattaforma Guest WiFi di Purple gestisce entrambi i meccanismi. Al completamento di WeChat OAuth, l'overlay cloud di Purple invia il segnale appropriato all'hardware sottostante. L'operatore della sede non deve gestire tale conversione manualmente. RACCOMANDAZIONI DI IMPLEMENTAZIONE E TRAPPOLE COMUNI (circa 2 minuti) Ecco i cinque motivi per cui le implementazioni di WeChat OAuth nei Captive Portal falliscono. Primo: la mancata corrispondenza dell'URI di reindirizzamento. WeChat convalida l'URI di reindirizzamento rispetto al dominio autorizzato registrato sulla piattaforma. Se il server del portale utilizza un sottodominio diverso, un percorso diverso o HTTP anziché HTTPS, il flusso OAuth fallisce con l'errore 40029, che indica un codice non valido. Registra ogni variante di dominio utilizzata, inclusi gli ambienti di staging. Secondo: l'AppSecret lato client. L'AppSecret non deve mai apparire nel JavaScript lato client o nel binario di un'applicazione mobile. Deve risiedere sul tuo server. Se viene esposto, chiunque può impersonare la tua applicazione e chiamare le API di WeChat per tuo conto. Terzo: mancanza di protezione CSRF. Il parametro state nella richiesta OAuth esiste specificamente per prevenire la cross-site request forgery. Genera un valore di state crittograficamente casuale, memorizzalo nella sessione dell'utente e convalidalo quando WeChat reindirizza l'utente. Se salti questo passaggio, avrai una reale vulnerabilità. Quarto: la mancata rilevazione del browser in-app. Il browser in-app di WeChat imposta una stringa user agent specifica contenente MicroMessenger. Se il tuo portale non rileva questo elemento e non fornisce il corretto flusso OAuth, gli utenti riscontreranno un'esperienza interrotta o un errore. Quinto: allineamento a GDPR e PIPL. Se ti rivolgi a visitatori europei, il GDPR si applica ai dati raccolti tramite WeChat OAuth. Se ti rivolgi a visitatori cinesi, la legge cinese sulla protezione delle informazioni personali (PIPL) si applica al modo in cui elabori i loro dati. Entrambe richiedono una base giuridica per il trattamento, una chiara limitazione delle finalità e la minimizzazione dei dati. L'ambito snsapi_base è più facile da giustificare in base ai principi di minimizzazione dei dati rispetto a snsapi_userinfo. Qualsiasi dato tu raccolga, documenta la base giuridica e il periodo di conservazione. DOMANDE E RISPOSTE RAPIDE (circa 1 minuto) Domanda: Posso utilizzare il login WeChat su un portale che offre anche l'accesso tramite e-mail e SMS? Sì. La maggior parte delle piattaforme di portali aziendali, inclusa Purple, supporta più metodi di autenticazione sulla stessa pagina del portale. WeChat appare come un'opzione tra le altre. Domanda: WeChat OAuth funziona su iOS? Sì, ma con una sfumatura. Il framework App Tracking Transparency di Apple non influisce sui flussi OAuth lato server. L'accesso a WeChat in Safari su iOS funziona tramite il flusso del codice QR o il flusso di reindirizzamento. La stessa app WeChat gestisce l'autenticazione. Domanda: Cosa succede se l'API di WeChat non è disponibile? Il tuo portale dovrebbe implementare un fallback. Se la chiamata API di WeChat va in timeout o restituisce un errore, reindirizza l'utente a un metodo di accesso alternativo. Non lasciarli con uno schermo vuoto. Domanda: Posso usare l'OpenID come identificativo cliente persistente? All'interno del tuo Account Ufficiale, sì. L'OpenID è stabile per un determinato utente e un determinato Account Ufficiale. Se disponi di più Account Ufficiali, lo stesso utente avrà OpenID diversi tra di essi. Per la risoluzione dell'identità tra più account, WeChat fornisce un UnionID, che richiede che i tuoi account siano collegati sulla Open Platform. RIASSUNTO E PROSSIMI PASSI (circa 1 minuto) Per riassumere. L'autenticazione WeChat OAuth per i Captive Portal è un esercizio di registrazione su due piattaforme, una decisione sull'ambito (scope), un'integrazione per l'applicazione delle regole di rete e una revisione della conformità. Se gestisci correttamente questi quattro elementi, avrai un metodo di accesso che serve oltre un miliardo di potenziali visitatori con zero attriti legati alle password. I prossimi passi pratici sono questi. Innanzitutto, stabilisci se i tuoi visitatori incontrano il portale all'interno del browser in-app di WeChat o in un browser mobile standard. Questo determina quale registrazione sulla piattaforma è necessaria. In secondo luogo, decidi lo scope. Usa snsapi base per gli ospiti che ritornano e snsapi userinfo per la prima registrazione con consenso. In terzo luogo, conferma che l'hardware di rete supporti RADIUS CoA o configura il MAC bypass come alternativa. In quarto luogo, esamina l'informativa sulla privacy e il flusso di consenso rispetto ai requisiti GDPR e PIPL. In quinto luogo, testa l'URI di reindirizzamento, la validazione del parametro di stato e il rilevamento del browser in-app prima di andare online. Se desideri vedere come Purple gestisce WeChat OAuth come parte di una più ampia piattaforma di Guest WiFi e analytics, in 80.000 location e 440 milioni di accessi nel 2024, visita purple.ai o parla con il team del tuo account. Grazie per l'attenzione.

header_image.png

Sintesi esecutiva

Per le sedi aziendali che operano nella regione APAC, o che servono turisti cinesi a livello globale, l'autenticazione WeChat WiFi non è più un'opzione facoltativa. Con 1,41 miliardi di utenti attivi mensili al 2025 (fonte: Tencent), WeChat è l'identità digitale primaria per i consumatori cinesi. Un ospite che si connette al tuo SSID e vede solo opzioni di accesso via email o Facebook incontra un ostacolo immediato. Quasi certamente ha WeChat. Quasi certamente non ha un indirizzo email locale configurato su quel dispositivo.

Questa guida illustra in dettaglio come integrare WeChat OAuth 2.0 in un Captive Portal. Copriamo le due distinte registrazioni della piattaforma richieste da Tencent, la decisione sull'ambito (scope) che determina quali dati di prima parte raccogliere e il meccanismo RADIUS Change of Authorisation (CoA) che traduce uno scambio OAuth andato a buon fine in un effettivo accesso alla rete. Affrontiamo anche i requisiti di conformità sovrapposti del GDPR e della Personal Information Protection Law (PIPL) cinese.

La piattaforma Guest WiFi di Purple automatizza il livello di applicazione della rete su hardware Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme e Fortinet. Purple opera in oltre 80.000 sedi attive e ha registrato 440 milioni di accessi nel 2024 (dati interni Purple).

Approfondimento tecnico

Il flusso OAuth 2.0

Un Captive Portal (un gateway di autenticazione basato sul web che intercetta il traffico HTTP dai dispositivi non autenticati) reindirizza gli ospiti a una pagina di login ospitata su un server del portale, on-premise o nel cloud. L'aggiunta di WeChat OAuth inserisce l'infrastruttura di identità di Tencent in quel flusso.

La sequenza si svolge come segue. L'ospite si associa all'SSID. Il controller wireless rileva l'assenza di una sessione autenticata e reindirizza tutto il traffico HTTP all'URL del Captive Portal. La pagina del portale si carica e presenta le opzioni di login, incluso WeChat. L'ospite seleziona WeChat. Il server del portale crea un reindirizzamento all'endpoint di autorizzazione di WeChat all'indirizzo open.weixin.qq.com, passando quattro parametri: l'AppID, l'URI di reindirizzamento, il tipo di risposta impostato su code e l'ambito (scope) richiesto.

WeChat autentica l'utente interamente sulla propria infrastruttura. Se l'ospite ha già effettuato l'accesso tramite il browser in-app di WeChat, lo scope snsapi_base consente un'autenticazione silenziosa senza alcuna richiesta visibile. WeChat reindirizza nuovamente all'URI di reindirizzamento registrato del portale con un codice di autorizzazione a breve scadenza. Il server del portale scambia questo codice con un token di accesso chiamando api.weixin.qq.com/sns/oauth2/access_token con AppID, AppSecret, codice e tipo di concessione (grant type). WeChat restituisce un token di accesso, un token di aggiornamento (refresh token), l'OpenID dell'utente e lo scope concesso. Se è stato richiesto snsapi_userinfo, una seconda chiamata API a api.weixin.qq.com/sns/userinfo recupera il nickname dell'utente, l'immagine del profilo, il genere e la città.

architecture_overview.png

Registrazione sulla piattaforma: la decisione che fa fallire la maggior parte dei deployment

Tencent gestisce due piattaforme di sviluppo distinte, e la scelta di quella errata è la causa più comune di implementazioni fallite.

Contesto di accesso Registrazione richiesta URL della piattaforma Scope supportati
Browser in-app di WeChat Account di Servizio (Official Accounts Platform) mp.weixin.qq.com snsapi_base, snsapi_userinfo
Browser mobile standard (Chrome, Safari) Applicazione Web (Open Platform) open.weixin.qq.com snsapi_login (flusso con codice QR)

Un Account di Sottoscrizione (Subscription Account) sulla Official Accounts Platform non funzionerà. Non dispone dei permessi di autorizzazione per le pagine web tramite OAuth. Solo un Account di Servizio (Service Account) possiede tali permessi.

La maggior parte dei deployment aziendali nei settori Hospitality e Retail implementa entrambe le registrazioni. Un ospite in un hotel potrebbe aprire il Captive Portal in Chrome, scansionare un codice QR con WeChat e autenticarsi tramite il flusso Open Platform. Oppure potrebbe seguire un link all'interno di WeChat stesso, atterrare nel browser in-app e autenticarsi silenziosamente tramite il flusso Official Accounts. Entrambi i percorsi devono essere gestiti.

Selezione dello scope e raccolta dati

Lo scope OAuth è una vera e propria decisione architetturale, non un semplice dettaglio di configurazione. Determina l'attrito che l'utente sperimenta e i dati che la tua piattaforma di WiFi Analytics riceve.

snsapi_base restituisce solo l'OpenID: un identificatore univoco e stabile per quell'utente all'interno del tuo Account Ufficiale. Non richiede alcuna richiesta di consenso all'utente. L'autenticazione è invisibile. Utilizzalo per gli ospiti che ritornano e di cui possiedi già i profili, o per ambienti ad alto rendimento come stadi e hub di trasporto dove la velocità di connessione è la priorità.

snsapi_userinfo restituisce l'OpenID oltre a nickname, immagine del profilo, genere, impostazioni della lingua e città. Questa modalità attiva una schermata di consenso esplicito. Utilizzala per la registrazione iniziale dell'ospite per creare un profilo di dati proprietari (first-party data), abbinato a un livello di consenso conforme a PIPL e GDPR sulla pagina del portale.

La regola pratica: usa snsapi_base per la velocità, snsapi_userinfo per i dati. Puoi implementarli entrambi verificando se l'OpenID dell'utente esiste già nel tuo database. In caso affermativo, richiedi snsapi_base. In caso contrario, richiedi snsapi_userinfo.

Applicazione di rete: RADIUS CoA e MAC bypass

Un token OAuth prova l'identità, ma non apre la rete. È necessario un meccanismo separato che traduca l'avvenuta autenticazione in un cambio di policy di rete.

Il RADIUS Change of Authorisation (CoA), definito nella RFC 3576, è l'approccio standard. Dopo che il server del portale riceve un token OAuth valido, invia una richiesta CoA al controller wireless. Il controller aggiorna la sessione, spostando il dispositivo dalla VLAN del walled garden (un segmento di rete limitato che consente solo il traffico del portale) alla VLAN completa per gli ospiti. Questo sistema funziona con Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme e Fortinet.

Il MAC address bypass registra l'indirizzo MAC del dispositivo come client autorizzato dopo il successo di OAuth. Il controller consente quindi il traffico da quell'indirizzo senza ulteriori verifiche. È più semplice da implementare ma comporta due rischi: gli indirizzi MAC possono essere falsificati e, a partire da iOS 14 e Android 10, viene utilizzata di default la randomizzazione dell'indirizzo MAC, il che interrompe il meccanismo alla successiva riconnessione.

Per qualsiasi implementazione in cui la sicurezza è fondamentale, RADIUS CoA è la scelta corretta. Per ulteriori informazioni sulla protezione delle reti ospiti, consulta What Is Secure WiFi: Essential Guide for Business 2026 e Enterprise WiFi Security: A Complete Guide for 2026 .

Guida all'implementazione

Checklist pre-configurazione

Prima di scrivere una sola riga di configurazione, completa questi cinque passaggi.

In primo luogo, determina il contesto di accesso. Esamina la tua sede e identifica se gli ospiti visualizzeranno il Captive Portal all'interno del browser in-app di WeChat, in un normale browser mobile o in entrambi. La risposta determina i requisiti di registrazione sulla piattaforma.

In secondo luogo, effettua la registrazione sulla piattaforma corretta. Per l'accesso tramite browser in-app, crea un Service Account sulla WeChat Official Accounts Platform. Per l'accesso tramite browser standard, registra una Website Application sulla WeChat Open Platform. Prendi nota dei tuoi AppID e AppSecret per ciascuna.

In terzo luogo, configura i tuoi URI di reindirizzamento. Registra ogni dominio e sottodominio utilizzato dal tuo portale, inclusi gli ambienti di staging. WeChat impone una convalida a corrispondenza esatta. In caso di mancata corrispondenza, viene restituito l'errore 40029.

In quarto luogo, implementa lo scambio di token lato server. L'AppSecret non deve mai apparire nel codice lato client. Crea un endpoint lato server che accetti il codice di autorizzazione, lo scambi con un token e restituisca solo i dati necessari al tuo portale.

In quinto luogo, implementare il parametro state per la protezione CSRF. Generare un valore crittograficamente casuale, memorizzarlo nella sessione dell'utente, passarlo nella richiesta OAuth e convalidarlo al ritorno.

Passaggi di configurazione per Ruckus SmartZone

Per le sedi che eseguono Ruckus SmartZone, la configurazione del portale WeChat si trova sotto Services and Profiles, poi Hotspots and Portals, e infine nella scheda WeChat. Configurare l'URL di autenticazione (l'endpoint di callback WeChat del server del portale), la destinazione DNAT (il server che gestisce i reindirizzamenti dei client non autenticati) e il periodo di tolleranza (la finestra temporale entro la quale un utente disconnesso di recente può riconnettersi senza doversi autenticare nuovamente, impostata per impostazione predefinita a 60 minuti). Configurare anche la whitelist del walled garden per consentire il traffico verso gli endpoint API di WeChat durante la fase di autenticazione. Vedere anche la Guida dettagliata: Configurazione dei controller wireless Ruijie per i Captive Portal WiFi degli ospiti per modelli di configurazione dei controller simili.

Rilevamento del browser in-app

Il browser in-app di WeChat imposta una stringa user agent contenente MicroMessenger. Il portale deve rilevare questa stringa e servire il flusso OAuth appropriato. Se MicroMessenger è presente, utilizzare il flusso degli account ufficiali. Se assente, utilizzare il flusso con codice QR di Open Platform. La mancata rilevazione corretta produce un'esperienza utente interrotta o errori di autenticazione.

Best practice

Minimizzazione dei dati e conformità al doppio framework

Il GDPR (applicabile ai visitatori europei) e la PIPL (applicabile ai cittadini cinesi) richiedono entrambi una base giuridica per il trattamento dei dati personali, una chiara limitazione delle finalità e la minimizzazione dei dati. L'ambito snsapi_base è più facile da giustificare in base ai principi di minimizzazione dei dati rispetto a snsapi_userinfo. Quando si raccolgono dati demografici tramite snsapi_userinfo, documentare la base giuridica, il periodo di conservazione e l'accordo sul trattamento dei dati con Tencent.

La PIPL, in vigore da novembre 2021, richiede il consenso esplicito per le informazioni personali sensibili e impone ai responsabili del trattamento al di fuori della Cina di implementare standard di protezione equivalenti. Se il server del portale si trova al di fuori della Cina continentale, è necessario valutare se le regole sul trasferimento transfrontaliero dei dati si applicano ai dati OpenID e di profilo di WeChat ricevuti.

UnionID per implementazioni multi-struttura

L'OpenID è univoco per utente e per account ufficiale. Se si gestiscono più account ufficiali in diverse strutture, lo stesso ospite avrà OpenID diversi in ciascuno di essi. WeChat fornisce un UnionID che rimane coerente per tutti gli account collegati alla stessa registrazione Open Platform. Per catene alberghiere, gruppi di vendita al dettaglio o operatori aeroportuali che gestiscono più sedi, implementare fin dall'inizio la risoluzione dell'identità basata su UnionID.

Rafforzamento della sicurezza

Conserva l'AppSecret in una variabile di ambiente o in un gestore di segreti, mai nel codice sorgente. Ruotalo immediatamente se sospetti un'esposizione. Implementa il rate limiting sul tuo endpoint di scambio token per prevenire abusi. Registra tutti gli errori OAuth, in particolare 40029 (codice non valido) e 40163 (codice scaduto), in quanto indicano una configurazione errata o un tentativo di probing attivo.

Per una visione più ampia dell'architettura di sicurezza delle reti guest, consulta il post Why Consumer WiFi Gear Doesn't Belong on Your Guest Network .

Case studies

Catena di hotel di lusso, Singapore

Un hotel di lusso da 350 camere a Singapore, con un target prevalentemente composto da viaggiatori d'affari cinesi, ha implementato l'autenticazione WeChat WiFi insieme alla preesistente opzione di accesso tramite e-mail. Prima dell'implementazione, il personale della reception segnalava una media di 15 reclami al giorno da parte degli ospiti per difficoltà di accesso al WiFi. Gli ospiti cinesi tentavano di utilizzare indirizzi e-mail che non avevano configurato sui propri dispositivi di viaggio.

L'hotel ha registrato un Service Account sulla WeChat Official Accounts Platform e una Website Application sulla Open Platform. Hanno configurato snsapi_userinfo per le prime connessioni e snsapi_base per gli ospiti di ritorno identificati tramite indirizzo MAC. Il controller HPE Aruba è stato configurato per RADIUS CoA per gestire la promozione della sessione.

Entro 30 giorni, i reclami relativi all'accesso WiFi degli ospiti sono scesi a meno di due al giorno. Il database di WiFi Analytics dell'hotel è cresciuto di 4.200 profili di prima parte verificati nel primo mese, con dati demografici a livello di città che hanno consentito comunicazioni mirate post-soggiorno.

Centro commerciale internazionale, Kuala Lumpur

Un centro commerciale di fascia premium a Kuala Lumpur, con 12 milioni di utenti WeChat nella sola Malesia, necessitava di un'esperienza di onboarding WiFi che rispondesse alle aspettative digitali della propria clientela. Il centro commerciale gestiva access point Cisco Meraki su una superficie di vendita di 180.000 metri quadrati.

La distribuzione ha utilizzato la piattaforma Guest WiFi di Purple come overlay cloud, con WeChat OAuth come metodo di autenticazione principale e SMS OTP come fallback. L'architettura indipendente dall'hardware di Purple ha gestito l'integrazione RADIUS CoA con Cisco Meraki senza richiedere sviluppo personalizzato.

Il centro commerciale ha registrato un aumento del 34% degli avvii di sessione WiFi nel primo trimestre post-implementazione, attribuito alla riduzione degli ostacoli di onboarding per gli utenti WeChat. I dati di prima parte raccolti tramite i flussi di consenso snsapi_userinfo hanno consentito al team di marketing del centro commerciale di segmentare gli acquirenti in base alla città di provenienza per l'invio di campagne mirate.

retail_venue_wechat_wifi.png

Risoluzione dei problemi e mitigazione dei rischi

Errore Causa Risoluzione
40029 codice non valido Mancata corrispondenza del Redirect URI o riutilizzo del codice Verifica che gli URI registrati corrispondano esattamente; i codici sono monouso
Schermata vuota dopo l'autenticazione RADIUS CoA non configurato o non funzionante Verificare le impostazioni CoA del controller e le regole del firewall sulla porta UDP 3799
La randomizzazione del MAC interrompe il flusso degli ospiti di ritorno Randomizzazione MAC di iOS/Android Migrare al tracciamento delle sessioni basato su OpenID; evitare l'identificazione basata solo sul MAC
snsapi_userinfo restituisce campi vuoti L'utente ha impostato restrizioni sulla privacy di WeChat Gestire i campi null in modo corretto; non richiedere i dati del profilo per l'accesso

ROI e impatto aziendale

Il business case per l'autenticazione WeChat WiFi si basa su tre risultati misurabili.

Acquisizione di dati di prima parte. Ogni autenticazione snsapi_userinfo genera un profilo ospite verificato con dati demografici. Per un hotel da 200 camere con un'occupazione del 70% e il 40% di ospiti cinesi, ciò rappresenta circa 20.000 nuovi profili verificati all'anno, ciascuno collegato a un'identità WeChat che supporta il re-engagement continuo.

Riduzione del carico di supporto. L'attrito al login è la causa principale delle chiamate di supporto per il WiFi degli ospiti. Le strutture che aggiungono l'autenticazione WeChat alle opzioni esistenti registrano costantemente una riduzione delle richieste alla reception relative al WiFi, liberando tempo del personale per interazioni a maggior valore.

Portata di marketing. Gli account ufficiali WeChat consentono alle strutture di inviare notifiche push ai follower. Un ospite che si autentica tramite il vostro account ufficiale può essere invitato a seguirlo, creando un canale di comunicazione diretto all'interno dell'ecosistema di WeChat, dove i consumatori cinesi trascorrono in media 82 minuti al giorno (fonte: Walk the Chat).

Il piano Engage di Purple estende ulteriormente questo aspetto, abilitando messaggi post-visita automatizzati, trigger di fidelizzazione e campagne segmentate create sui dati di prima parte raccolti al momento dell'autenticazione WiFi.

Definizioni chiave

Captive Portal

Un gateway di autenticazione web che intercetta il traffico HTTP da un dispositivo non autenticato e lo reindirizza a una pagina di login prima di concedere l'accesso alla rete.

Il meccanismo attraverso il quale l'autenticazione WiFi degli ospiti viene presentata agli utenti. WeChat OAuth è uno dei diversi metodi di autenticazione che un Captive Portal può offrire.

OAuth 2.0

Un protocollo di autorizzazione standard del settore che consente a un'applicazione di terze parti (il Captive Portal) di ottenere un accesso limitato a un servizio web (WeChat) per conto di un utente, senza che quest'ultimo debba condividere la propria password con la terza parte.

Il framework sottostante che rende possibile il login con WeChat. Il portale non vede mai le credenziali WeChat dell'utente; riceve solo un token che conferma che WeChat lo ha autenticato.

RADIUS CoA

Change of Authorisation. Un meccanismo definito in RFC 3576 che consente a un server RADIUS di modificare dinamicamente gli attributi di autorizzazione della sessione di un client di rete attivo, come la modifica dell'assegnazione VLAN.

Il meccanismo di enforcement di rete che traduce una corretta transazione WeChat OAuth in un effettivo accesso alla rete. Senza CoA, l'ospite si autentica ma il controller non sa di dover aprire la rete.

OpenID

Un identificatore univoco assegnato da WeChat a uno specifico utente per uno specifico Account Ufficiale o Applicazione Web. È stabile tra le sessioni ma differisce da un account all'altro.

La chiave primaria utilizzata per identificare un ospite nel database di analytics WiFi. Utilizza UnionID se gestisci più Account Ufficiali e hai bisogno di una risoluzione dell'identità cross-account.

snsapi_base

Uno scope OAuth di WeChat che consente l'autenticazione silenziosa, restituendo solo l'OpenID dell'utente senza mostrare una richiesta di consenso.

Da utilizzare per gli ospiti che ritornano o in ambienti ad alta densità in cui la velocità di connessione è la priorità. Non restituisce dati demografici oltre all'OpenID.

snsapi_userinfo

Uno scope OAuth di WeChat che restituisce l'OpenID dell'utente, il nickname, l'immagine del profilo, il genere, la lingua e la città, richiedendo una schermata di consenso esplicito dell'utente.

Da utilizzare per la registrazione dei nuovi ospiti per creare un profilo di dati proprietari. Deve essere associato a un livello di consenso conforme a GDPR e PIPL.

PIPL

Personal Information Protection Law. La legislazione globale sulla privacy dei dati in Cina, in vigore da novembre 2021, che disciplina le modalità di raccolta, trattamento e trasferimento dei dati personali dei cittadini cinesi.

Si applica a qualsiasi sede che raccolga dati da cittadini cinesi tramite WeChat OAuth, indipendentemente dal luogo in cui si trova la sede. Richiede consenso esplicito, limitazione delle finalità e minimizzazione dei dati.

AppSecret

Una chiave crittografica riservata emessa da WeChat che autentica la tua applicazione quando chiama l'API di scambio token di WeChat.

Deve essere memorizzato solo sul lato server. L'esposizione nel codice lato client consente a chiunque di impersonare l'applicazione ed effettuare chiamate API non autorizzate a WeChat.

VLAN

Virtual Local Area Network. Un segmento di rete logico che isola il traffico a livello di collegamento dati, consentendo a una singola rete fisica di trasportare più flussi di traffico isolati.

Utilizzato nelle distribuzioni di Captive Portal per separare i dispositivi non autenticati (walled garden VLAN) dagli ospiti autenticati (guest VLAN). RADIUS CoA sposta un dispositivo tra le VLAN a seguito di un'autenticazione riuscita.

UnionID

Un identificatore WeChat che rimane coerente per un determinato utente in tutti gli Account Ufficiali e le Applicazioni Web collegati alla stessa registrazione Open Platform.

Essenziale per catene alberghiere, gruppi retail e operatori multi-sede che devono riconoscere lo stesso ospite in diverse proprietà, ciascuna con il proprio Account Ufficiale.

Esempi pratici

Un hotel di lusso da 200 camere a Singapore utilizza controller HPE Aruba e serve un elevato volume di viaggiatori d'affari cinesi. Desidera raccogliere dati demografici dai visitatori al primo accesso e garantire che gli ospiti che ritornano si connettano automaticamente senza visualizzare nuovamente il portale. Come deve configurare l'integrazione di WeChat OAuth?

Passo 1: Registrare un Service Account sulla WeChat Official Accounts Platform (mp.weixin.qq.com) per gestire gli ospiti che accedono al portale all'interno del browser in-app di WeChat. Registrare una Website Application sulla WeChat Open Platform (open.weixin.qq.com) per gli ospiti che utilizzano browser mobili standard.

Passo 2: Configurare il Captive Portal per rilevare la stringa user agent MicroMessenger. Fornire il flusso OAuth di Official Accounts per gli utenti del browser in-app e il flusso di codici QR di Open Platform per gli utenti di browser standard.

Passo 3: Per le connessioni al primo accesso (nessun OpenID esistente nel database), richiedere lo scope snsapi_userinfo. Presentare una schermata di consenso conforme al PIPL prima del reindirizzamento OAuth. Memorizzare l'OpenID restituito, il nickname, la città e il genere nel database dei profili degli ospiti.

Passo 4: Per gli ospiti che ritornano (l'OpenID esiste già nel database), richiedere lo scope snsapi_base. Questo autentica l'utente in modo silenzioso senza alcun prompt visibile.

Passo 5: Configurare il controller HPE Aruba per RADIUS CoA sulla porta UDP 3799. Dopo il successo dell'autenticazione OAuth, il server del portale invia una richiesta CoA per promuovere il dispositivo dalla VLAN walled garden alla VLAN ospiti.

Passo 6: Implementare la registrazione dell'indirizzo MAC insieme all'OpenID per gestire il rilevamento degli ospiti che ritornano. Si noti che la randomizzazione del MAC richiede l'uso di OpenID come identificatore primario, non il solo indirizzo MAC.

Commento dell'esaminatore: Questo approccio separa correttamente le registrazioni delle due piattaforme in base al contesto di accesso, utilizza la selezione dello scope per bilanciare l'attrito con la raccolta dei dati e implementa RADIUS CoA per l'applicazione sicura delle policy di rete. L'uso di OpenID come identificatore primario per gli ospiti che ritornano è la risposta corretta alla randomizzazione del MAC. Il livello di consenso PIPL non è negoziabile per i dati dei cittadini cinesi.

Il team IT di una catena di negozi segnala un alto tasso di fallimento per i login WiFi di WeChat in tre centri commerciali. Gli utenti si autenticano in WeChat ma vengono reindirizzati alla pagina del portale con un errore. I log del portale mostrano l'errore 40029. Qual è la causa probabile e come si risolve?

L'errore 40029 significa che WeChat ha rifiutato il codice di autorizzazione durante lo scambio dei token. Le due cause più comuni sono una discrepanza del redirect URI e il riutilizzo del codice.

Passo 1: Accedere alla console sviluppatori di WeChat sia per la Official Accounts Platform che per la Open Platform. Navigare nelle impostazioni OAuth ed elencare tutti i redirect URI registrati.

Passo 2: Confrontarli con i redirect URI effettivi utilizzati dal server del portale in produzione in tutte e tre le sedi. Verificare la presenza di differenze nei sottodomini (portal.brand.com rispetto a brand.com), differenze di protocollo (HTTP rispetto a HTTPS) e differenze di percorso (/callback rispetto a /wechat/callback).

Passo 3: Registrare ogni variante nella console di WeChat. WeChat esegue una convalida a corrispondenza esatta, non a prefisso.

Passo 4: Se gli URI corrispondono, verificare se il server del portale sta tentando di riutilizzare i codici di autorizzazione. I codici WeChat sono monouso e scadono dopo cinque minuti. Se il server tenta nuovamente lo scambio di token con lo stesso codice, riceverà l'errore 40029 al secondo tentativo.

Passo 5: Implementare l'idempotenza nell'endpoint di scambio dei token per prevenire richieste duplicate.

Commento dell'esaminatore: L'errore 40029 è l'errore più comune nelle implementazioni di WeChat OAuth ed è quasi sempre causato da una discrepanza del redirect URI. Le implementazioni multi-sede sono particolarmente vulnerabili perché ogni sede potrebbe utilizzare un sottodominio o un indirizzo di bilanciamento del carico differente. La causa secondaria, il riutilizzo del codice, è meno comune ma merita di essere verificata se la registrazione degli URI risulta corretta.

Domande di esercitazione

Q1. Stai implementando un Captive Portal per uno stadio da 60.000 posti che ospita eventi internazionali con una significativa base di fan cinesi. La priorità è connettere online tutti i partecipanti entro i primi 15 minuti dall'apertura dei cancelli per ridurre la congestione cellulare. La raccolta di dati di marketing è un obiettivo secondario. Quale scope OAuth di WeChat dovresti configurare e perché?

Suggerimento: Considera l'impatto di una schermata di consenso mostrata a 15.000 utenti simultanei su un server del portale.

Visualizza risposta modello

Configura lo scope snsapi_base. Questo consente l'autenticazione silenziosa senza alcuna richiesta di consenso all'utente, offrendo l'esperienza di onboarding più rapida possibile. Su scala da stadio, una schermata di consenso aggiunge attrito che si moltiplica su migliaia di connessioni simultanee e può causare picchi di carico sul server del portale. snsapi_base restituisce solo l'OpenID, che è sufficiente per registrare la sessione e identificare i fan che ritornano. Per i fan che accedono per la prima volta e di cui si desiderano i dati demografici, è possibile richiedere il completamento del profilo tramite un sondaggio post-connessione anziché al gate di autenticazione.

Q2. Un network architect del tuo team propone di memorizzare l'AppSecret di WeChat nel JavaScript lato client del Captive Portal per ridurre i round-trip del server effettuando la chiamata di scambio del token direttamente dal browser. Spiega perché questo approccio rappresenta una falla di sicurezza critica e qual è l'architettura corretta.

Suggerimento: Considera chi può visualizzare il codice lato client e cosa consente di fare l'AppSecret.

Visualizza risposta modello

La memorizzazione dell'AppSecret nel JavaScript lato client lo espone a chiunque visualizzi il codice sorgente della pagina o intercetti il traffico di rete. L'AppSecret autentica la tua applicazione verso l'API di WeChat. Con esso, un malintenzionato può impersonare la tua applicazione, chiamare l'endpoint di scambio token di WeChat con qualsiasi codice di autorizzazione valido, recuperare gli OpenID e i dati del profilo degli utenti e potenzialmente esaurire i limiti di velocità della tua API. L'architettura corretta prevede un endpoint di scambio token lato server. Il browser riceve il codice di autorizzazione da WeChat e lo passa al tuo server. Il tuo server, utilizzando l'AppSecret memorizzato in una variabile d'ambiente o in un gestore di segreti, scambia il codice con un token e restituisce solo i dati di cui il portale ha bisogno. L'AppSecret non lascia mai il tuo server.

Q3. La tua struttura gestisce tre hotel in città diverse, ognuno con il proprio account ufficiale WeChat. Un membro del programma fedeltà che si è autenticato in tutte e tre le strutture ha tre diversi OpenID nel tuo database. Come risolvi questo problema in un'unica identità ospite?

Suggerimento: WeChat fornisce un meccanismo per la risoluzione dell'identità cross-account che richiede una configurazione specifica della piattaforma.

Visualizza risposta modello

Implementa il meccanismo UnionID di WeChat. Collega tutti e tre gli account ufficiali alla stessa registrazione Open Platform su open.weixin.qq.com. Una volta collegati, WeChat restituisce un UnionID insieme all'OpenID nella risposta snsapi_userinfo. L'UnionID è coerente per un determinato utente in tutti gli account collegati alla stessa registrazione Open Platform. Migra il tuo database per utilizzare l'UnionID come identificatore principale dell'ospite per i record cross-property, conservando l'OpenID specifico per account per le chiamate API specifiche dell'account. Per gli ospiti che si sono autenticati prima dell'implementazione dell'UnionID, attiva una nuova autenticazione con snsapi_userinfo alla loro prossima visita per acquisire l'UnionID.

Q4. Dopo aver implementato l'autenticazione WeChat WiFi in uno spazio commerciale con access point Cisco Meraki, gli ospiti segnalano di aver completato con successo il login di WeChat ma di essere reindirizzati alla pagina del portale senza poter navigare in internet. I log del server del portale mostrano un recupero del token andato a buon fine. Qual è la causa più probabile e come si diagnostica?

Suggerimento: Il portale ha verificato l'identità. Cosa non è ancora successo?

Visualizza risposta modello

Il RADIUS Change of Authorisation (CoA) non si sta completando. Il server del portale ha verificato l'identità dell'ospite tramite l'OAuth di WeChat ma non ha istruito con successo il controller Cisco Meraki a spostare il dispositivo dalla VLAN del walled garden alla VLAN ospiti. Diagnostica controllando: (1) se il controller Meraki ha il RADIUS CoA abilitato e se l'IP del server del portale è elencato come client CoA autorizzato; (2) se la porta UDP 3799 è aperta tra il server del portale e il controller; (3) i log del server del portale per errori o timeout della richiesta CoA; e (4) se il segreto condiviso configurato su entrambi i lati corrisponde. Se il CoA non è supportato nel tuo livello di licenza Meraki, il bypass del MAC address è la soluzione alternativa, sebbene comporti il rischio di randomizzazione del MAC indicato nella guida.

Continua a leggere questa serie

Come configurare un Captive Portal su Starlink: una guida per sedi remote e marittime

Questa guida spiega in dettaglio come escludere l'hardware nativo di Starlink e integrare un Captive Portal gestito in cloud utilizzando apparecchiature di routing aziendali. Imparerai come superare il limite del CGNAT, applicare la segmentazione VLAN, gestire i vincoli di larghezza di banda satellitare e garantire la conformità normativa.

Leggi la guida →

Captive Portal Best Practices: Progettazione per Conversioni Elevate e Compliance

Questa guida tecnica offre a IT manager, architetti di rete e direttori operativi delle location un modello completo per l'implementazione di Captive Portal in grado di bilanciare la sicurezza di rete con un tasso elevato di conversione degli utenti. Copre l'intera architettura, dalla segmentazione VLAN e autenticazione RADIUS fino alla progettazione del consenso conforme al GDPR e alla selezione del metodo di autenticazione. Basata sull'esperienza operativa di Purple in oltre 80.000 location e 440 milioni di login nel 2024, ogni raccomandazione è fondata su dati reali di implementazione.

Leggi la guida →

Come ottimizzare i Captive Portal per la massima sicurezza di rete e conversione degli utenti

Questa guida fornisce un progetto tecnico completo per l'ottimizzazione dei captive portal all'interno di strutture aziendali, coprendo l'architettura di segmentazione della rete, la selezione dei metodi di autenticazione, la progettazione del consenso conforme al GDPR e l'ottimizzazione delle conversioni. È scritta per IT manager, architetti di rete e CTO di hotel, catene di vendita al dettaglio, stadi e organizzazioni del settore pubblico che devono bilanciare la sicurezza della rete con l'acquisizione di dati di prima parte. Purple gestisce l'infrastruttura dei captive portal in oltre 80.000 sedi con 440 milioni di accessi nel 2024, e i framework qui presentati riflettono tale esperienza operativa.

Leggi la guida →