Comment configurer l'authentification OAuth WeChat pour les portails captifs
Ce guide technique explique comment configurer l'authentification OAuth WeChat pour les portails captifs. Il détaille les enregistrements de plate-forme requis, le flux OAuth 2.0, la sélection de la portée et les mécanismes d'application réseau nécessaires pour capturer en toute sécurité les données de première partie des visiteurs chinois.
Écouter ce guide
Voir la transcription du podcast
- Synthèse
- Architecture Technique
- Exigences d'Inscription sur la Plateforme
- WeChat Official Accounts Platform
- WeChat Open Platform
- Sélection du champ d'application (Scope) et collecte de données
- snsapi_base
- snsapi_userinfo
- Intégration du contrôle d'accès réseau
- RADIUS Change of Authorization (CoA)
- MAC Address Bypass
- Conformité et considérations de sécurité
- Alignement avec le GDPR et la PIPL
- Protection CSRF
- Validation de l'URI de redirection

Synthèse
Lorsque des visiteurs chinois se connectent à votre WiFi, leur présenter une page de splash de connexion avec uniquement des options d'adresse e-mail ou Facebook crée une barrière immédiate à l'entrée. Avec ses 1,38 milliard d'utilisateurs actifs mensuels, la configuration de WeChat en tant que fournisseur d'identité élimine cette friction. Ce guide montre comment implémenter l'authentification WeChat OAuth 2.0 pour les Captive Portals, en détaillant les inscriptions de plateforme nécessaires, les flux OAuth et les mécanismes d'application réseau requis pour traduire une connexion réussie en un accès réseau. Nous couvrirons l'implémentation technique pour le matériel d'entreprise, ainsi que les exigences de conformité selon le GDPR et la PIPL.
Architecture Technique
Le Captive Portal intercepte le trafic HTTP des appareils non authentifiés et les redirige vers une page de splash hébergée sur un serveur de portail. Lorsque vous intégrez l'authentification WeChat OAuth, vous insérez un fournisseur d'identité tiers dans ce flux.

Voici l'interaction étape par étape exacte :
- Le visiteur se connecte au SSID.
- Le point d'accès (AP) sans fil ou le contrôleur sans fil détecte l'absence de session authentifiée et redirige le trafic HTTP vers l'URL du Captive Portal.
- Le visiteur sélectionne la connexion WeChat.
- Le serveur de portail redirige le navigateur vers le point de terminaison d'autorisation de WeChat (
open.weixin.qq.com), en transmettant l'AppID, leredirect_uri,response_type=codeet lescope. - WeChat gère l'authentification. Si le visiteur se trouve dans le navigateur intégré de WeChat en utilisant le scope
snsapi_base, cela se produit de manière transparente. - WeChat redirige à nouveau vers l'URL
redirect_uridu portail avec un code d'autorisation temporaire. - Le serveur de portail échange ce code contre un jeton d'accès en appelant
api.weixin.qq.com/sns/oauth2/access_token. - WeChat renvoie l'
access_token, lerefresh_tokenet l'openidde l'utilisateur.
Exigences d'Inscription sur la Plateforme
L'implémentation de la connexion WeChat nécessite une inscription sur la bonne plateforme de développement. WeChat gère deux plateformes distinctes, et choisir la mauvaise entraînera l'échec de l'intégration.
WeChat Official Accounts Platform
Pour les Captive Portals affichés dans le navigateur intégré de WeChat, vous devez disposer d'un compte de service enregistré sur la plateforme officielle WeChat Official Accounts (mp.weixin.qq.com). Les comptes d'abonnement ne disposent pas des autorisations de page web OAuth requises. Les comptes de service prennent en charge les champs d'application snsapi_base et snsapi_userinfo.
WeChat Open Platform
Pour les Captive Portals consultés depuis des navigateurs mobiles standard en dehors de WeChat (par exemple, Chrome sur Android ou Safari sur iOS), vous devez enregistrer une application de site Web sur la plateforme Open Platform (open.weixin.qq.com). Celle-ci utilise le champ d'application snsapi_login et affiche un code QR que l'utilisateur doit scanner avec son application WeChat.
La plupart des déploiements d'entreprise nécessitent les deux enregistrements afin de couvrir tous les parcours d'accès.
Sélection du champ d'application (Scope) et collecte de données
Le paramètre de champ d'application détermine les données que WeChat renvoie au serveur de votre portail. Cette décision a un impact à la fois sur le parcours utilisateur et sur la conformité en matière de confidentialité des données.

snsapi_base
Ce champ d'application renvoie uniquement l'OpenID, l'identifiant unique de l'utilisateur au sein de votre compte officiel. Il ne nécessite aucune invite d'autorisation de l'utilisateur, ce qui rend l'authentification transparente. C'est la solution idéale pour les visiteurs récurrents pour lesquels vous possédez déjà un profil, ou pour les sites qui privilégient une expérience sans friction plutôt que la collecte de nouvelles données.
snsapi_userinfo
Ce champ d'application renvoie l'OpenID ainsi que le pseudo WeChat de l'utilisateur, sa photo de profil, son genre, ses paramètres de langue et sa ville. Il nécessite une page d'autorisation explicite, ce qui ajoute une étape pour l'utilisateur. Utilisez cette option pour l'enregistrement d'un nouveau visiteur lorsqu'il est nécessaire de créer un profil, associée à une couche de consentement conforme au GDPR.
Intégration du contrôle d'accès réseau
L'obtention d'un jeton OAuth prouve l'identité, mais n'ouvre pas le réseau. Vous devez traduire la réussite de l'authentification en accès réseau à l'aide de protocoles standards.
RADIUS Change of Authorization (CoA)
Défini dans la norme IEEE 802.1X et la RFC 3576, le RADIUS CoA permet au serveur du portail d'envoyer une requête au contrôleur réseau suite à une authentification OAuth réussie. Le contrôleur bascule ensuite l'appareil d'un VLAN non authentifié vers un VLAN invité. C'est la norme pour le matériel d'entreprise, notamment Cisco Meraki, HPE Aruba, Ruckus et Juniper Mist.
MAC Address Bypass
Alternativement, le serveur du portail enregistre l'adresse MAC de l'appareil en tant que client autorisé, et le contrôleur autorise l'accès. Bien que plus simple à mettre en œuvre, cette méthode est moins sécurisée car les adresses MAC peuvent être usurpées.
La technologie cloud de Purple automatise ce transfert, en envoyant les signaux appropriés au matériel sous-jacent (notamment Ubiquiti UniFi, Cambium, Extreme et Fortinet) une fois l'authentification WeChat OAuth validée.
Conformité et considérations de sécurité
Alignement avec le GDPR et la PIPL
Si vous accueillez des visiteurs européens, le GDPR s'applique aux données collectées via WeChat OAuth. Si vous accueillez des visiteurs chinois, la loi chinoise sur la protection des informations personnelles (PIPL) s'applique. Les deux cadres exigent que le traitement repose sur une base légale, une limitation explicite des finalités et une minimisation des données. Par rapport à la portée snsapi_userinfo, la portée snsapi_base est plus facile à aligner avec les principes de minimisation des données.
Protection CSRF
Le paramètre state dans les requêtes OAuth empêche les attaques par falsification de requête intersite. Vous devez générer une valeur d'état aléatoire de manière cryptographique, la stocker dans la session de l'utilisateur et la valider lorsque WeChat redirige l'utilisateur.
Validation de l'URI de redirection
WeChat valide le redirect_uri par rapport au domaine autorisé enregistré sur la plateforme. Si le serveur de votre portail utilise un sous-domaine ou un chemin d'accès différent, ou s'il utilise HTTP au lieu de HTTPS, le flux OAuth échouera avec l'erreur 40029.
Pour plus d'informations sur la sécurisation de votre réseau, consultez notre Sécurité WiFi d'entreprise : un guide complet pour 2026 .
Définitions clés
snsapi_base
Une portée OAuth WeChat qui renvoie uniquement l'OpenID de l'utilisateur sans afficher de demande de consentement.
Utilisé lorsque les équipes informatiques doivent authentifier les visiteurs de retour de manière invisible sans provoquer de friction de connexion.
snsapi_userinfo
Une portée OAuth WeChat qui renvoie l'OpenID ainsi que des données démographiques (pseudo, sexe, ville) et nécessite le consentement explicite de l'utilisateur.
Utilisé lors de la première inscription lorsque les équipes marketing doivent créer un profil de visiteur.
OpenID
Un identifiant unique pour un utilisateur spécifique au sein d'un compte WeChat Official Account spécifique.
Utilisé comme clé primaire dans la base de données du portail pour suivre le comportement des visiteurs et les visites de retour.
RADIUS CoA
Change of Authorisation. Un mécanisme défini dans la RFC 3576 qui permet à un serveur de modifier l'état d'autorisation d'une session active.
Utilisé par le serveur du portail pour indiquer au contrôleur sans fil d'accorder l'accès au réseau après une authentification WeChat réussie.
PIPL
Personal Information Protection Law. La réglementation chinoise complète sur la confidentialité des données.
Doit être pris en compte aux côtés du GDPR lors de la conception du flux de consentement pour les visiteurs chinois utilisant la connexion WeChat.
AppID and AppSecret
Les identifiants fournis par WeChat pour identifier et authentifier votre application.
L'AppSecret doit rester sécurisé sur le serveur du portail et ne jamais être exposé dans le code côté client.
State Parameter
Une chaîne de caractères cryptographiquement aléatoire transmise dans la requête OAuth et validée lors du retour.
Indispensable pour prévenir les attaques de type Cross-Site Request Forgery (CSRF) sur le Captive Portal.
MAC Address Bypass
Une méthode d'octroi d'accès au réseau en autorisant l'adresse matérielle de l'appareil plutôt qu'en exigeant une authentification 802.1X.
Une alternative à RADIUS CoA pour les configurations réseau plus simples, bien que moins sécurisée.
Exemples concrets
Une marque de vente au détail de luxe à Londres souhaite proposer la connexion WeChat aux acheteurs chinois. Elle souhaite collecter des données démographiques pour comprendre sa clientèle, mais s'inquiète de la conformité au GDPR et des taux d'abandon élevés sur le portail.
Le détaillant doit enregistrer un compte de service (Service Account) sur la plate-forme WeChat Official Accounts. Il doit configurer le portail pour utiliser la portée snsapi_userinfo lors des premières connexions afin de recueillir des données démographiques (pseudo, sexe, ville). Pour garantir la conformité au GDPR, la page du portail doit afficher un choix d'adhésion clair et conscient avant la redirection vers WeChat, expliquant exactement quelles données sont collectées et pourquoi. Pour les acheteurs de retour, le portail doit détecter l'adresse MAC et utiliser snsapi_base pour une ré-authentification transparente, minimisant ainsi les frictions.
Un stade déploie un nouveau réseau WiFi utilisant des contrôleurs HPE Aruba. Ils ont configuré WeChat OAuth, et le portail reçoit avec succès le jeton d'accès, mais l'appareil du visiteur reste bloqué sur la page du Captive Portal et ne peut pas accéder à internet.
L'intégration manque d'un mécanisme d'application réseau. Le serveur du portail a vérifié l'identité de l'utilisateur avec WeChat, mais il n'a pas donné l'ordre au contrôleur HPE Aruba d'accorder l'accès. Le serveur du portail doit être configuré pour envoyer un message RADIUS Change of Authorisation (CoA) au contrôleur, lui demandant de faire passer l'adresse MAC de l'utilisateur du rôle de pré-authentification au rôle d'invité authentifié.
Questions d'entraînement
Q1. Vous déployez un Captive Portal dans une chaîne de magasins. Les tests montrent que les utilisateurs qui ouvrent le portail dans Safari sur iOS reçoivent une erreur en sélectionnant la connexion WeChat, mais que les utilisateurs ouvrant le portail depuis un lien de message WeChat s'authentifient avec succès. Quelle est la cause probable ?
Conseil : Considérez la différence entre le navigateur intégré de WeChat et les navigateurs mobiles standard.
Voir la réponse type
L'implémentation repose probablement uniquement sur un compte de service enregistré sur la plateforme de comptes officiels, qui ne prend en charge l'OAuth que dans le navigateur intégré de WeChat. Pour prendre en charge Safari sur iOS, vous devez également enregistrer une application de site Web sur la plateforme ouverte de WeChat et implémenter la détection de l'agent utilisateur pour diriger les utilisateurs de Safari vers le flux de code QR.
Q2. Les journaux de votre serveur de portail affichent de fréquentes erreurs 40029 "code non valide" provenant de l'API WeChat lors de l'échange de jetons d'accès. Quelle configuration devez-vous vérifier en premier ?
Conseil : Pensez à la façon dont WeChat valide la source de la demande d'authentification.
Voir la réponse type
Vous devez vérifier la configuration du redirect_uri. WeChat valide strictement l'URI de redirection par rapport au domaine autorisé enregistré dans la console de développement. Si le portail utilise un sous-domaine différent ou s'il n'utilise pas HTTPS, WeChat rejettera l'échange de code.
Q3. Un exploitant de site souhaite collecter les données des visiteurs mais insiste sur l'absence de friction lors du processus de connexion. Il vous demande de configurer la connexion WeChat pour collecter le pseudo et la ville du visiteur sans afficher de demande de consentement. Comment répondez-vous ?
Conseil : Examinez les capacités des différents champs d'application OAuth (scopes).
Voir la réponse type
Vous devez informer l'exploitant que cela est techniquement impossible. La collecte de données démographiques comme le pseudo et la ville nécessite le scope snsapi_userinfo, qui déclenche obligatoirement une demande de consentement WeChat. Pour obtenir une friction nulle, vous devez utiliser snsapi_base, qui fonctionne de manière silencieuse mais ne renvoie que l'OpenID.
Continuer la lecture de cette série
Captive Portal pour Ruijie : configurez-le avec le WiFi invité Purple
Découvrez comment le WiFi invité cloud de Purple se superpose aux points d'accès Ruijie RG Series en utilisant l'authentification web et RADIUS, configuré en ligne de commande, et où trouver les étapes exactes de configuration.
Conception de Captive Portals B2B : Collecter le Nom Enregistré et les Données de l'Entreprise
Ce guide fournit aux responsables informatiques et aux exploitants de sites un cadre technique indépendant des fournisseurs pour concevoir des Captive Portals B2B. Il détaille comment structurer les champs d'inscription pour capturer le nom enregistré et les données de l'entreprise, garantissant des taux de complétion élevés tout en maintenant la conformité GDPR et en développant une intelligence au niveau des comptes.
Architecture de Captive Portal : Sécurité, redirection et bonnes pratiques
Une référence technique définitive sur l'architecture de captive portal d'entreprise. Ce guide détaille l'isolation réseau, la redirection DNS, l'authentification RADIUS et la conformité en matière de sécurité pour les responsables informatiques déployant des réseaux WiFi invités sécurisés et riches en données.