Vai al contenuto principale

Integrazione dell'autenticazione WeChat con i Captive Portal delle reti WiFi per ospiti

Questa guida spiega come integrare l'autenticazione OAuth 2.0 di WeChat nei Captive Portal delle reti WiFi aziendali per ospiti. Copre i requisiti di registrazione su doppia piattaforma, la selezione dello scope per l'acquisizione di dati proprietari, l'applicazione delle policy di rete tramite RADIUS Change of Authorization e la conformità al GDPR e alla PIPL cinese. I gestori di strutture nei settori hospitality, retail ed eventi troveranno passaggi di implementazione concreti, casi di studio reali e linee guida per il rafforzamento della sicurezza per distribuire il login tramite WeChat su reti WiFi per ospiti su larga scala.

📖 8 minuti di lettura📝 1,966 parole🔧 2 esempi pratici4 domande di esercitazione📚 9 definizioni chiave

Ascolta questa guida

Visualizza trascrizione del podcast
COME CONFIGURARE L'AUTENTICAZIONE OAUTH WECHAT PER I CAPTIVE PORTAL Un briefing tecnico Purple - Circa 10 minuti --- INTRODUZIONE E CONTESTO (circa 1 minuto) Benvenuto. Se ti occupi della gestione del WiFi per gli ospiti presso un hotel, una catena di negozi, uno stadio o un centro congressi che accoglie visitatori cinesi, questo briefing è pensato per te. WeChat conta 1,38 miliardi di utenti attivi mensili, secondo i dati di Tencent del 2024. La stragrande maggioranza si trova in Cina, ma la piattaforma vanta anche un'importante presenza internazionale - quattro milioni di utenti negli Stati Uniti, 12 milioni in Malesia e numeri in costante crescita nel Sud-est asiatico, in Europa e in Medio Oriente. Quando un ospite cinese si connette al tuo WiFi e visualizza una pagina di login che offre solo l'accesso tramite e-mail, Facebook o codice coupon, si scontra con un ostacolo immediato. Potrebbe non avere un indirizzo e-mail locale configurato su quel dispositivo. Di contro, possiede quasi certamente WeChat. La domanda, quindi, non è se dovresti offrire il login tramite WeChat, ma come configurarlo in modo corretto, sicuro e tale da generare dati di prima parte effettivamente utilizzabili. Questo è esattamente ciò che tratteremo oggi. Analizzeremo il flusso OAuth 2.0, le due registrazioni di piattaforma necessarie, la scelta dell'ambito (scope) che determina quali dati raccogliere, il meccanismo di applicazione lato rete e le considerazioni di conformità fondamentali per il 2026. --- APPROFONDIMENTO TECNICO (circa 5 minuti) Iniziamo con l'architettura. Un Captive Portal intercetta il traffico HTTP da un dispositivo non autenticato e lo reindirizza a una pagina di login. Tale pagina di login è ospitata su un server portal, in locale o sul cloud. Quando aggiungi l'autenticazione OAuth di WeChat, inserisci un provider di identità di terze parti in questo 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 seleziona il login tramite WeChat. Il server del tuo portale reindirizza il browser all'endpoint di autorizzazione di WeChat, trasmettendo il tuo App ID, l'URI di reindirizzamento, il tipo di risposta del codice e lo scope. WeChat gestisce l'autenticazione interamente sui propri server. Se l'ospite ha già effettuato l'accesso a WeChat nel proprio browser, visualizza una schermata di consenso. Se sta utilizzando il browser in-app di WeChat, l'esperienza può avvenire in background con lo scope di base snsapi - senza alcuna richiesta di consenso. WeChat reindirizza quindi all'URI di reindirizzamento del tuo portale con un codice di autorizzazione temporaneo. Il server del tuo portale scambia quel codice con un token di accesso, trasmettendo il tuo App ID, l'App Secret, il codice e il tipo di concessione del codice di autorizzazione. WeChat restituisce un token di accesso, un token di aggiornamento, l'Open ID dell'utente e lo scope concesso. Se hai richiesto lo scope snsapi userinfo, puoi quindi effettuare una seconda chiamata API per recuperare il nickname, l'avatar, il genere e la città dell'utente.Ora, le due registrazioni della piattaforma. Questo è il punto in cui la maggior parte delle implementazioni fallisce. WeChat ha due piattaforme di sviluppo separate. La WeChat Open Platform gestisce le applicazioni per siti web e le app mobili. La WeChat Official Accounts Platform gestisce gli account pubblici - 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 delle autorizzazioni di autorizzazione della pagina web OAuth. Un Service Account sì, e supporta sia gli scope snsapi base che snsapi userinfo. Per un Captive Portal a cui si accede da un browser mobile standard al di fuori di WeChat - Chrome su Android, Safari su iOS - è necessaria un'applicazione per sito web 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 sulla rete WiFi di 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 rappresenta un vero e proprio punto decisionale. snsapi base restituisce solo l'Open ID - un identificatore unico per quell'utente all'interno del tuo Official Account. Non richiede alcuna richiesta di consenso da parte dell'utente. L'autenticazione è invisibile per l'utente. Questo è l'ideale per gli ospiti che ritornano e che hai già profilato, o per le location in cui si desidera zero attriti. snsapi userinfo restituisce l'Open ID più il nickname WeChat dell'utente, l'immagine del profilo, il genere, la lingua impostata e la città. Richiede una schermata di consenso esplicito. La maggior parte degli utenti accetta, ma c'è un elemento di attrito. La scelta giusta dipende dal tuo caso d'uso. Per la registrazione di un ospite che accede per la prima volta e di cui desideri creare un profilo, utilizza snsapi userinfo e abbinalo a un livello di consenso conforme al GDPR sulla pagina del tuo portale. Per un ospite che ritorna, che ha già fornito il consenso e di cui possiedi già il profilo, utilizza snsapi base per una riautenticazione silenziosa. Ora, il lato dell'enforcement di rete. Ottenere 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 che l'OAuth è andato a buon fine, e il controller sposta il dispositivo dalla VLAN non autenticata alla VLAN ospiti. Questo funziona con Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist e la maggior parte dei controller di livello enterprise. Con il MAC bypass, il server del portale registra l'indirizzo MAC del dispositivo come client autorizzato e il controller lo consente. Il MAC bypass è più semplice da implementare ma meno sicuro, perché gli indirizzi MAC possono essere contraffatti. 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 - che si tratti di Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme o Fortinet. L'operatore della sede non deve gestire questa traduzione manualmente. --- RACCOMANDAZIONI DI IMPLEMENTAZIONE ED ERRORI COMUNI (circa 2 minuti) Vediamo i cinque motivi principali per cui le implementazioni del captive portal con WeChat OAuth 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 il protocollo HTTP anziché HTTPS, il flusso OAuth fallisce con l'errore 40029 - codice non valido. Registra ogni variante di dominio utilizzata, inclusi gli ambienti di staging. Secondo: l'App Secret lato client. Il tuo App Secret non deve mai apparire nel JavaScript lato client. Appartiene al 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 di stato nella richiesta OAuth esiste specificamente per prevenire la cross-site request forgery. Genera un valore di stato crittograficamente casuale, memorizzalo nella sessione dell'utente e convalidalo quando WeChat reindirizza l'utente. Se salti questo passaggio, avrai una reale vulnerabilità. Quarto: il gap di rilevamento 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 serve il corretto flusso OAuth, gli utenti riceveranno un'esperienza interrotta o un errore. Quinto: allineamento GDPR e PIPL. Se offri il servizio a visitatori europei, si applica il GDPR. Se offri il servizio a visitatori cinesi, si applica la Personal Information Protection Law cinese - PIPL. Entrambe richiedono una base giuridica per il trattamento, una chiara limitazione delle finalità e la minimizzazione dei dati. Lo snsapi base è più facile da giustificare in base ai principi di minimizzazione dei dati rispetto allo snsapi userinfo. Indipendentemente da ciò che raccogli, documenta la tua base giuridica e il periodo di conservazione. --- DOMANDE E RISPOSTE RAPIDE (circa 1 minuto) Posso utilizzare il login WeChat su un portale che offre anche il login via email e SMS? Sì. La maggior parte delle piattaforme per portali aziendali, inclusa Purple, supporta più metodi di autenticazione sulla stessa pagina del portale. WeChat OAuth funziona su iOS? Sì. Il login WeChat in Safari su iOS funziona tramite il flusso con codice QR o il flusso di reindirizzamento. L'app WeChat stessa gestisce l'autenticazione. Cosa succede se l'API di WeChat non è disponibile? Implementa un fallback. Se la chiamata API di WeChat va in timeout o restituisce un errore, reindirizza l'utente a un metodo di login alternativo. Posso utilizzare l'Open ID come identificativo cliente persistente? All'interno del tuo Official Account, sì. Per la risoluzione dell'identità cross-account su più proprietà, utilizza invece l'UnionID. --- RIASSUNTO E PROSSIMI PASSI (circa 1 minuto) Per riassumere. L'autenticazione WeChat OAuth per i captive portal è un processo che richiede la registrazione su due piattaforme, una decisione sullo scope, un'integrazione di enforcement di rete e una verifica di conformità. Gestisci correttamente questi quattro aspetti e avrai un metodo di accesso che serve oltre un miliardo di potenziali visitatori con zero attrito legato alle password. I prossimi passi pratici: determina se i tuoi visitatori visualizzano il portale all'interno del browser in-app di WeChat o in un browser mobile standard. Decidi lo scope - snsapi_base per gli ospiti che ritornano, snsapi_userinfo per la prima registrazione con consenso. Conferma che l'hardware di rete supporti RADIUS CoA. Verifica la tua informativa sulla privacy rispetto al GDPR e alla PIPL. Testa l'URI di reindirizzamento, la convalida 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 WiFi per gli ospiti e analisi - in oltre 80.000 sedi e 440 milioni di accessi nel 2024 - visita purple.ai o contatta il tuo team dell'account. Grazie per l'ascolto. --- FINE DELLO SCRIPT

header_image.png

Quando un visitatore cinese si connette alla rete aziendale e si imbatte in un Captive Portal che offre solo l'accesso tramite email, Facebook o codici di credenziali, si crea un immediato attrito. Secondo i dati di Tencent del 2024, WeChat conta 1,38 miliardi di utenti attivi mensili. Integrare il login di WeChat con il WiFi per gli ospiti non è un semplice servizio di cortesia, ma un requisito tecnico per raccogliere dati di prima parte da questo target demografico senza ostacoli.

Questa guida illustra in dettaglio l'architettura tecnica dell'integrazione dell'autenticazione WeChat OAuth 2.0 con i captive portal. Spiega la registrazione su doppia piattaforma richiesta per supportare i browser mobile standard insieme al browser in-app di WeChat, valuta i compromessi tra gli scope snsapi_base e snsapi_userinfo per la raccolta dei dati e descrive come viene applicato l'accesso alla rete utilizzando il RADIUS Change of Authorization (CoA) o il MAC Authentication Bypass. Copre inoltre le configurazioni di sicurezza e le direttive di conformità - GDPR e la legge cinese sulla protezione delle informazioni personali (PIPL) - necessarie per distribuzioni su larga scala nelle infrastrutture Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme e Fortinet.


Approfondimento Tecnico: Architettura WeChat OAuth 2.0

Un Captive Portal intercetta il traffico HTTP dai dispositivi non autenticati e li reindirizza a una landing page ospitata su un server portale. L'aggiunta dell'autenticazione WeChat inserisce un provider di identità di terze parti in questo flusso utilizzando il protocollo OAuth 2.0, lo stesso standard utilizzato da Google, Microsoft Entra ID e Okta per l'identità federata.

oauth_flow_diagram.png

Il flusso di autenticazione funziona come segue: un visitatore si connette all'SSID. L'access point o il controller wireless rileva la sessione non autenticata e reindirizza il traffico HTTP all'URL del Captive Portal. Il visitatore seleziona il login WeChat sulla pagina del Portal. Il server del Portal reindirizza il browser all'endpoint di autorizzazione WeChat all'indirizzo open.weixin.qq.com, passando l' AppID, l'URI di reindirizzamento, il tipo di risposta code e lo Scope richiesto. WeChat gestisce l'autenticazione sui propri server. Se il visitatore si trova all'interno del browser integrato di WeChat utilizzando lo Scope snsapi_base, l'autenticazione è silenziosa - non viene visualizzato alcun prompt di consenso all'autorizzazione. Se viene utilizzato snsapi_userinfo, WeChat mostra una pagina di consenso all'autorizzazione. WeChat reindirizza quindi all'URI di reindirizzamento del Portal con un codice di autorizzazione temporaneo. Il server del Portal scambia questo codice con un Access Token effettuando una chiamata API a api.weixin.qq.com/sns/oauth2/access_token con l' AppID, l' AppSecret, il codice e un tipo di concessione di authorization_code. WeChat restituisce l'Access Token, il Refresh Token, l'OpenID dell'utente e lo Scope concesso. Se è stato concesso snsapi_userinfo, il server avvia una seconda chiamata API per recuperare il nickname dell'utente, l'immagine del profilo, il genere e la città.

Requisiti di Registrazione Dual-Platform

La maggior parte delle implementazioni fallisce nella fase di registrazione. WeChat gestisce due piattaforme di sviluppo separate e le distribuzioni aziendali in genere richiedono entrambe.

Piattaforma URL Tipo di Account Richiesto Scope Supportati Ambiente Browser
Official Accounts Platform mp.weixin.qq.com Account di Servizio snsapi_base, snsapi_userinfo Browser In-App di WeChat
Open Platform open.weixin.qq.com Applicazione Web snsapi_login Browser Mobile Standard

Per i visitatori che accedono al Portal all'interno del browser in-app di WeChat, è necessario un Account di Servizio sulla Official Accounts Platform. Gli account di iscrizione non funzioneranno - mancano delle autorizzazioni per la pagina web OAuth. Per i visitatori che accedono al Portal da Chrome su Android o Safari su iOS, è necessaria un'Applicazione Web sulla Open Platform, che utilizza lo Scope snsapi_login e mostra un codice QR che l'utente deve scansionare.

In pratica, la maggior parte delle implementazioni nei locali utilizza entrambe. L'ospite di un hotel potrebbe aprire il Portal in Chrome, vedere un codice QR, scansionarlo con WeChat e autenticarsi. Oppure potrebbe toccare un link direttamente all'interno di WeChat, accedere al browser in-app e autenticarsi silenziosamente tramite snsapi_base.

Selezione dello Scope: Raccolta Dati vs. Attrito Utente

scope_comparison.png

Lo scope richiesto determina i dati che raccogli e l'attrito che il visitatore sperimenta. Questa è una decisione pratica con implicazioni di conformità.

snsapi_base restituisce solo l'OpenID - l'identificatore univoco per quell'utente all'interno del tuo Account Ufficiale. Non richiede alcuna richiesta di consenso da parte dell'utente. L'autenticazione è silenziosa per il visitatore. Ideale per i visitatori di ritorno di cui hai già i profili, o quando si dà priorità a un accesso senza attriti. Secondo i principi di minimizzazione dei dati del GDPR e della PIPL, snsapi_base è molto più facile da giustificare.

snsapi_userinfo restituisce l'OpenID più il nickname, l'immagine del profilo, il genere e la città dell'utente. Richiede una pagina di consenso di autorizzazione esplicita. Ideale per la registrazione dei visitatori che accedono per la prima volta e per i quali è necessario creare un profilo, abbinata a un overlay di consenso conforme sulla tua pagina del Portale.

UnionID per Implementazioni Multi-Sito

Un OpenID è univoco per la combinazione di un utente e di uno specifico Account Ufficiale. Un gruppo alberghiero con 20 proprietà, ognuna con il proprio Account Ufficiale, vedrebbe 20 OpenID diversi per lo stesso visitatore. Lo UnionID risolve questo problema. Si tratta di un identificatore unico che rappresenta un utente in tutti gli Account Ufficiali e le applicazioni collegate allo stesso account della Open Platform. Collega i tuoi Account Ufficiali al tuo account Open Platform e lo UnionID verrà restituito nella risposta OAuth. Questa è la base per il riconoscimento dei visitatori su più siti.


Guida all'Implementazione

Meccanismi di Controllo della Rete

L'ottenimento di un token OAuth prova solo l'identità; non apre la rete. È necessario inviare un segnale al controller per consentire il passaggio del traffico.

Il RADIUS Change of Authorization (CoA) (definito nella RFC 3576) è il metodo di livello enterprise consigliato. Dopo una convalida OAuth andata a buon fine, il server del Portale invia una richiesta CoA al controller di rete. Il controller sposta il dispositivo dalla VLAN di pre-autenticazione alla VLAN guest. Questo si applica a Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme e Fortinet.

Il MAC Authentication Bypass (MAB) registra l'indirizzo MAC del dispositivo come client autorizzato nel database RADIUS. Il controller consente l'accesso in base a questo MAC. Il MAB è più facile da implementare ma meno affidabile: i moderni dispositivi iOS e Android randomizzano gli indirizzi MAC per impostazione predefinita, interrompendo l'associazione della sessione al momento della riconnessione.

La piattaforma Guest WiFi di Purple automatizza questa transizione. Una volta completato l'OAuth di WeChat, la rete overlay in cloud di Purple invia il segnale CoA o MAB appropriato all'hardware sottostante, eliminando il problema della configurazione manuale delle VLAN.

Configurazione della Sicurezza

Le tre configurazioni seguenti non sono negoziabili.

  1. Proteggere l'AppSecret. L'AppSecret non deve mai apparire nel JavaScript lato client. Deve rimanere sul tuo server. Se compromesso, gli aggressori possono impersonare la tua applicazione e chiamare l'API di WeChat per tuo conto.
  2. Implementare la Protezione CSRF. Genera un valore state crittograficamente casuale, memorizzalo nella sessione dell'utente e convalidalo quando ritorna il reindirizzamento di WeChat. Questo previene gli attacchi di tipo cross-site request forgery come definito nella RFC 6749.
  3. Registrare tutte le variazioni dell'URI di reindirizzamento. WeChat convalida l'URI di reindirizzamento rispetto al dominio registrato. Registra ogni sottodominio e variante di percorso che utilizzi (compresi gli ambienti di staging) per evitare errori 40029 (codice non valido).

Rilevamento del browser in-app

Il browser in-app di WeChat imposta una stringa user-agent contenente MicroMessenger. Il tuo Captive Portal deve rilevare questa stringa e instradare di conseguenza: il browser in-app utilizza il flusso dell'Account Ufficiale, mentre i browser standard utilizzano il flusso del codice QR della Open Platform. Il mancato rilevamento di questa stringa comporta un'esperienza interrotta o errori di autenticazione.

hotel_wechat_wifi.png


Best Practice e conformità

Conformità GDPR

Se offri servizi a visitatori europei o operi in Europa, il GDPR si applica ai dati raccolti tramite WeChat OAuth. È necessario stabilire una base giuridica conforme per il trattamento - in genere il consenso o il legittimo interesse. Prima che avvenga l'autenticazione, devi fornire una chiara informativa sulla privacy sul Captive Portal. Devi inoltre rispondere alle richieste di accesso e di cancellazione degli interessati. Per un quadro dettagliato sulla conformità, consulta il Compliance Playbook: GDPR and Guest WiFi Data Privacy .

Conformità PIPL

Quando gestisci i dati personali dei cittadini cinesi, si applica la legge cinese sulla protezione delle informazioni personali (PIPL). Analogamente al GDPR, la PIPL richiede una limitazione esplicita delle finalità, la minimizzazione dei dati e una base giuridica scritta. In base al principio di minimizzazione dei dati, snsapi_base è molto più facile da giustificare rispetto a snsapi_userinfo. Indipendentemente dai dati raccolti, documenta la base giuridica e i periodi di conservazione prima di andare online.

Isolamento della rete

Utilizza la segmentazione VLAN per isolare il traffico WiFi degli ospiti dalla rete aziendale. Gli ospiti autenticati tramite WeChat devono essere collocati su una VLAN dedicata agli ospiti con accesso solo a Internet - nessun accesso ai sistemi interni. Questo è in linea con i requisiti PCI-DSS per l'isolamento dell'ambiente dei dati dei titolari di carta e con le pratiche di sicurezza aziendale generali. Per ulteriori informazioni sull'architettura di isolamento, consulta Bandwidth Management: A Practical Guide for 2026 .

Autenticazione di riserva

Se l'API di WeChat non è disponibile, il portale deve reindirizzare a un metodo di accesso alternativo. Non lasciare gli ospiti davanti a una schermata vuota. Fornire alternative via e-mail o SMS garantisce la continuità del servizio. Ciò è particolarmente cruciale nei settori dei Trasporti e della Sanità , dove la connettività di rete rappresenta un obbligo di servizio.


Casi di studio reali

Ospitalità: Gruppo alberghiero di lusso

Un hotel di lusso con 400 camere a Londra ospitava un numero significativo di clienti provenienti dalla Cina continentale. Il loro Captive Portal originale richiedeva la verifica dell'indirizzo e-mail e tramite SMS. I numeri di cellulare cinesi spesso non ricevevano i messaggi SMS dagli operatori europei e molti ospiti non avevano account e-mail nativi configurati sui propri dispositivi. Ciò ha portato a tassi di abbandono del portale fino al 60%.

L'hotel ha registrato un Service Account sulla piattaforma Official Accounts e una Website Application sulla Open Platform. Il portale rilevava lo user-agent MicroMessenger e attivava snsapi_base per gli utenti del browser in-app, connettendoli in meno di tre secondi senza alcuna richiesta di autorizzazione. Agli ospiti che utilizzavano Chrome o Safari veniva presentato un codice QR. Nelle visite successive, il sistema riconosceva lo stesso OpenID e autenticava silenziosamente l'ospite senza richiedere credenziali. Il CRM dell'hotel registrava il ritorno dell'ospite, consentendo comunicazioni mirate prima dell'arrivo. Per saperne di più sulla distribuzione del WiFi nel settore dell'ospitalità, consulta Hospitality .

Retail: Analytics per centri commerciali

Un grande centro commerciale desiderava raccogliere informazioni demografiche sui consumatori cinesi per definire il mix di locatari e le strategie di marketing. Avevano bisogno di comprendere la città di provenienza, il genere e la frequenza delle visite. In questo caso, snsapi_base non era sufficiente: era necessario snsapi_userinfo. Il portale richiedeva l'ambito userinfo completo. Gli ospiti visualizzavano la richiesta di autorizzazione WeChat e cliccavano su consenti. La piattaforma di analytics del centro commerciale, integrata con il modulo WiFi Analytics di Purple, riceveva un flusso di dati demografici verificati. Il sabato pomeriggio, il 40% degli utenti WiFi proveniva da una regione specifica. Questi dati hanno influenzato direttamente i brand da contattare per le attivazioni di temporary shop. Per saperne di più sulle distribuzioni WiFi nel settore retail, consulta Retail .


Risoluzione dei problemi e mitigazione dei rischi

I cinque scenari di errore più comuni nelle distribuzioni di Captive Portal con OAuth WeChat sono:

Mancata corrispondenza dell'URI di reindirizzamento (Errore 40029). WeChat convalida l'URI di reindirizzamento rispetto al dominio registrato. Qualsiasi mancata corrispondenza nel sottodominio, nel percorso o nel protocollo causerà il fallimento dello scambio di codice. Registra tutte le varianti, inclusi gli ambienti di staging.

Esposizione dell'AppSecret. L'incorporamento dell'AppSecret nel codice lato client è l'errore di sicurezza più critico. Sposta tutta la logica di scambio dei token sul lato server.

Mancanza di protezione CSRF. Trascurare la convalida del parametro state lascia il portale vulnerabile agli attacchi di Cross-Site Request Forgery. Genera un valore crittografico casuale per sessione e convalidalo al callback.

Mancato rilevamento del browser in-app. Il mancato rilevamento di MicroMessenger nello user agent comporta che agli utenti del browser in-app venga offerto il flusso OAuth errato, causando errori. La randomizzazione degli indirizzi MAC interrompe le sessioni MAB. I moderni sistemi operativi mobili randomizzano gli indirizzi MAC. Gli ospiti che si affidano all'applicazione MAB perderanno la loro sessione al momento della riconnessione. Passa a RADIUS CoA per una gestione affidabile delle sessioni. Per indicazioni sulla configurazione sicura del WiFi, consulta Cos'è il Secure WiFi: La Guida Essenziale Enterprise 2026 .


ROI e Impatto Aziendale

L'implementazione del login con WeChat per il WiFi ospiti offre tre impatti misurabili.

Migliori tassi di autenticazione. L'eliminazione dei punti di errore della verifica SMS e dei requisiti di inserimento dell'e-mail aumenta la percentuale di visitatori cinesi che si connettono con successo. Per i Captive Portal senza supporto WeChat, un tasso di abbandono del 60% è una base di riferimento realistica.

Qualità dei dati di prima parte. I profili verificati tramite WeChat includono un OpenID convalidato e, tramite snsapi_userinfo, l'accesso diretto agli attributi demografici della piattaforma social. Questi dati possono essere inseriti nelle piattaforme di analisi per guidare il marketing mirato senza affidarsi ai cookie di terze parti.

Riduzione dei costi di supporto. Il login continuo riduce il volume di chiamate al personale della reception e del supporto IT per la risoluzione dei problemi di connessione dei visitatori internazionali.

Purple opera in oltre 80.000 location e ha elaborato 440 milioni di accessi nel 2024 (dati interni Purple). La piattaforma è certificata ISO 27001, conforme a GDPR e CCPA, e mantiene un uptime del 99,999%. Per le strutture nei settori Retail e Hospitality , l'autenticazione WeChat trasforma la rete da un centro di costo a un robusto canale di acquisizione dati di prima parte.

Definizioni chiave

Captive portal

Una pagina web che intercetta il traffico HTTP da un dispositivo non autenticato e richiede l'interazione dell'utente prima di concedere l'accesso alla rete.

L'interfaccia principale in cui l'opzione di login WeChat viene presentata all'ospite. Il server del portale ospita questa pagina e orchestra il flusso OAuth.

OAuth 2.0

Un protocollo di autorizzazione standard del settore (RFC 6749) che consente a un'applicazione terza di ottenere un accesso limitato a un servizio HTTP per conto di un utente.

Il protocollo sottostante utilizzato da WeChat per passare i token di autenticazione al server del portale senza esporre le credenziali dell'utente. Lo stesso protocollo utilizzato da Microsoft Entra ID, Okta e Google Workspace.

OpenID

Un identificativo alfanumerico univoco assegnato a uno specifico utente WeChat per uno specifico Official Account.

Utilizzato come chiave primaria per identificare gli ospiti di ritorno nel database di analytics del WiFi. Cambia per ciascun Official Account - utilizza UnionID per il riconoscimento cross-property.

UnionID

Un identificativo WeChat singolo che rappresenta un utente in tutti gli Official Accounts e le app collegate allo stesso account Open Platform.

Essenziale per gruppi alberghieri, catene retail e operatori di stadi con più sedi che hanno la necessità di riconoscere lo stesso ospite in tutta la loro rete di strutture.

RADIUS CoA (Change of Authorization)

Un'estensione del protocollo RADIUS (RFC 3576) che consente a un server RADIUS di modificare dinamicamente gli attributi di autorizzazione di una sessione attiva.

Il metodo sicuro utilizzato per spostare un dispositivo ospite da una VLAN di pre-autenticazione isolata alla VLAN internet attiva dopo un login WeChat avvenuto con successo. Supportato da Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme e Fortinet.

snsapi_base

Uno scope OAuth di WeChat che restituisce solo l'OpenID dell'utente e non richiede alcuna richiesta di consenso da parte dell'utente.

Lo scope consigliato per la ri-autenticazione degli ospiti di ritorno. Più facile da giustificare secondo i principi di minimizzazione dei dati del GDPR e della PIPL.

snsapi_userinfo

Uno scope OAuth di WeChat che restituisce l'OpenID, il nickname, l'avatar, il genere e la città dell'utente, e richiede una schermata di consenso esplicito.

Utilizzato per la registrazione degli ospiti al primo accesso quando sono richiesti dati demografici per gli analytics. Richiede una base giuridica documentata ai sensi del GDPR e della PIPL.

PIPL (Personal Information Protection Law)

La legislazione globale cinese sulla privacy dei dati, in vigore da novembre 2021, che disciplina il trattamento delle informazioni personali delle persone fisiche situate in Cina.

Si applica quando le sedi elaborano dati di cittadini cinesi tramite WeChat OAuth. Richiede un consenso chiaro, limitazione delle finalità, minimizzazione dei dati e un meccanismo di cancellazione.

AppSecret

Una chiave crittografica riservata rilasciata da WeChat durante la registrazione dell'applicazione, utilizzata per autorizzare le chiamate API dal server del portale.

Deve essere memorizzato esclusivamente sul lato server. L'esposizione nel JavaScript lato client consente ai malintenzionati di impersonare l'applicazione ed effettuare chiamate dannose alle API di WeChat.

Esempi pratici

Un hotel di lusso da 400 camere a Londra registra un tasso di abbandono del portale del 60% tra gli ospiti provenienti dalla Cina continentale. Il portale attuale richiede la verifica tramite e-mail e SMS. Il Direttore IT deve implementare l'autenticazione WeChat mantenendo la conformità al GDPR e la sicurezza di rete.

Passaggio 1: Registrare un account di servizio sulla WeChat Official Accounts Platform (mp.weixin.qq.com) e un'applicazione web sulla WeChat Open Platform (open.weixin.qq.com). Passaggio 2: Configurare il portale per rilevare la stringa user agent MicroMessenger. Se rilevata, avviare il flusso OAuth snsapi_base per l'autenticazione silenziosa. Se non rilevata, presentare il flusso con codice QR. Passaggio 3: Aggiungere un'informativa sulla privacy conforme al GDPR e una casella di controllo del consenso sulla pagina del portale prima che il pulsante di accesso a WeChat diventi attivo. L'informativa deve indicare: dati raccolti (solo OpenID), finalità (accesso WiFi per ospiti e riconoscimento delle visite successive) e periodo di conservazione. Passaggio 4: Dopo aver completato con successo lo scambio dei token OAuth, il server del portale invia una richiesta RADIUS CoA al controller Cisco Meraki, spostando il dispositivo dell'ospite dalla VLAN di pre-autenticazione alla VLAN segmentata per gli ospiti. Passaggio 5: Memorizzare l'OpenID associandolo all'indirizzo MAC del dispositivo nel database degli ospiti. Nelle visite successive, l'OpenID di ritorno attiva la riautenticazione silenziosa.

Commento dell'esaminatore: Questo approccio affronta correttamente sia i requisiti tecnici che quelli di conformità. L'uso di snsapi_base si allinea ai principi di minimizzazione dei dati del GDPR, riducendo i rischi legali ed eliminando il punto di errore della verifica via SMS. RADIUS CoA garantisce una segmentazione di rete sicura e automatizzata. La casella di controllo del consenso soddisfa il requisito del GDPR relativo a una base giuridica documentata. La decisione chiave è preferire snsapi_base a snsapi_userinfo - l'hotel non ha bisogno di dati demografici per questo caso d'uso, quindi raccoglierli introdurrebbe obblighi di conformità non necessari.

Un centro commerciale desidera raccogliere dati sul genere e sulla città degli acquirenti cinesi tramite il WiFi per ospiti per integrarli nella propria piattaforma di analisi. Attualmente utilizzano il MAC Authentication Bypass per il portale esistente basato su hardware HPE Aruba.

Passaggio 1: Registrare un account di servizio sulla WeChat Official Accounts Platform. Passaggio 2: Configurare il portale per utilizzare lo scope snsapi_userinfo per recuperare genere e città. Passaggio 3: Aggiungere una schermata di consenso chiara che spieghi lo scambio di valore: WiFi gratuito in cambio dell'accesso ai dati del profilo. Il consenso deve essere esplicito e granulare sia ai sensi del GDPR che della PIPL. Passaggio 4: Dopo l'autenticazione, il server del portale registra l'indirizzo MAC del dispositivo nel database RADIUS. Il controller HPE Aruba consente l'accesso tramite MAB. Passaggio 5: Documentare la base giuridica (consenso), la finalità (analisi della struttura e marketing) e il periodo di conservazione (24 mesi) in un registro del trattamento dei dati. Fornire un meccanismo per la cancellazione dei dati.

Commento dell'esaminatore: Lo scope snsapi_userinfo recupera correttamente i dati demografici richiesti. Tuttavia, l'affidamento al MAB introduce un rischio operativo significativo: iOS 14+ e Android 10+ rendono casuali gli indirizzi MAC per impostazione predefinita, il che significa che gli ospiti perderanno la sessione autenticata alla riconnessione e saranno costretti a riautenticarsi. Il centro commerciale dovrebbe pianificare la migrazione a RADIUS CoA su HPE Aruba per risolvere questo problema. La documentazione di conformità PIPL non è facoltativa - è un requisito legale per il trattamento dei dati dei cittadini cinesi, indipendentemente dal luogo in cui si trova la struttura.

Domande di esercitazione

Q1. Stai distribuendo un captive portal in uno stadio. Desideri che gli abbonati di ritorno che si sono già autenticati in precedenza si connettano automaticamente senza visualizzare una schermata di login nelle visite successive. Quale scope OAuth di WeChat dovresti implementare per il flusso di ri-autenticazione e perché?

Suggerimento: Considera quale scope consente l'autenticazione silenziosa senza richiedere il consenso all'utente a ogni visita.

Visualizza risposta modello

Utilizza snsapi_base. Questo scope restituisce solo l'OpenID dell'utente e non richiede alcuna richiesta di consenso, consentendo una ri-autenticazione silenziosa. Alla prima visita, memorizzi l'OpenID nel profilo del tifoso. Nelle visite successive, il portale rileva l'OpenID di ritorno tramite snsapi_base, conferma la corrispondenza e invia una richiesta RADIUS CoA per concedere l'accesso - il tutto senza che il tifoso visualizzi una schermata di login. Questo si allinea anche con i principi di minimizzazione dei dati del GDPR, in quanto non stai raccogliendo dati aggiuntivi oltre a quelli necessari per la funzione di autenticazione.

Q2. Durante i test, il tuo portale reindirizza correttamente a WeChat, l'utente concede il consenso e WeChat reindirizza nuovamente al tuo portale. Tuttavia, i log del server del portale mostrano l'errore OAuth 40029 (codice non valido). Qual è l'errore di configurazione più probabile e come si risolve?

Suggerimento: WeChat convalida rigorosamente la destinazione a cui invia il codice di autorizzazione rispetto a un elenco registrato.

Visualizza risposta modello

La causa più probabile è una mancata corrispondenza del redirect URI. WeChat convalida il redirect URI nella richiesta OAuth rispetto al dominio autorizzato registrato sulla piattaforma. Se il server del portale utilizza un sottodominio diverso, un percorso diverso o HTTP anziché HTTPS, lo scambio di codice non va a buon fine con l'errore 40029. Risoluzione: accedere alla piattaforma per sviluppatori di WeChat, navigare nelle impostazioni del Service Account o della Website Application e aggiungere ogni variante di redirect URI utilizzata, inclusi i sottodomini di staging, i diversi percorsi e le versioni HTTPS. Assicurarsi che il parametro redirect_uri nella richiesta OAuth corrisponda esattamente a uno degli URI registrati, inclusa la codifica URL.

Q3. Un IT manager propone di incorporare l'AppSecret di WeChat nel JavaScript front-end del captive portal per velocizzare il processo di scambio dei token direttamente dal browser del client. Perché è necessario rifiutare questa proposta e qual è l'architettura corretta?

Suggerimento: Considerare le implicazioni di sicurezza legate all'esposizione di chiavi crittografiche all'interno di codice accessibile pubblicamente.

Visualizza risposta modello

Rifiutare questa proposta. L'AppSecret è una chiave crittografica riservata. Incorporarlo nel JavaScript lato client lo espone a chiunque visualizzi il sorgente della pagina o intercetti il traffico di rete. Un malintenzionato potrebbe estrarre l'AppSecret e impersonare l'applicazione, chiamando le API di WeChat per conto della sede, accedendo ai dati degli utenti e compromettendo potenzialmente l'intero Official Account. L'architettura corretta: la pagina del portale lato client riceve il codice di autorizzazione da WeChat e lo inoltra al server del portale tramite una chiamata API lato server. Il server del portale conserva l'AppSecret in una variabile d'ambiente sicura ed effettua lo scambio di token con l'API di WeChat. L'AppSecret non lascia mai il server.

Q4. Un gruppo alberghiero con 15 strutture in tutta Europa desidera creare un profilo ospite unificato che riconosca quando lo stesso ospite cinese soggiorna in strutture diverse. Ogni struttura ha il proprio WeChat Official Account. Quale identificativo WeChat dovrebbero utilizzare e quale configurazione è richiesta?

Suggerimento: L'OpenID è specifico per l'account. Esiste un identificativo diverso progettato per il riconoscimento tra account diversi.

Visualizza risposta modello

Utilizzare l'UnionID. L'OpenID cambia per ogni Official Account, quindi lo stesso ospite avrà 15 OpenID diversi su 15 account. L'UnionID è un identificativo stabile che rappresenta un utente in tutti gli Official Account e le app collegate allo stesso account Open Platform. Configurazione richiesta: collegare tutti i 15 Official Account a un singolo account WeChat Open Platform. Una volta collegati, l'UnionID viene restituito nella risposta OAuth quando l'utente ha autorizzato almeno uno degli account collegati. Utilizzare l'UnionID come chiave primaria nel CRM degli ospiti per creare profili cross-struttura e riconoscere gli ospiti che ritornano, indipendentemente dalla struttura che visitano.