Captive Portal for Cisco Meraki
An authoritative, intermediate-level technical reference guide for integrating Cisco Meraki MR access points with Purple's cloud captive portal. Covers step-by-step Meraki Dashboard configurations, RADIUS server settings (ports 1812/1813), walled garden wildcard domain exceptions, and session timeout parameters for high-performance guest WiFi deployments.
Listen to this guide
View podcast transcript
📚 Part of our core series: Multi-Tenant WiFi →
- Executive Summary
- Technical Deep-Dive
- Control Plane and Data Plane Separation
- RADIUS Authentication Protocol (PAP)
- Supported RADIUS Attributes
- Implementation Guide
- Step 1: Configure SSID Access Control
- Step 2: Configure the Custom Splash Page URL
- Step 3: Configure Walled Garden Domain Name Exceptions
- Best Practices
- 1. Network Segmentation and VLAN Isolation
- 2. Configure Failover and Session Resiliency
- 3. Implement Session and Idle Timeouts
- Troubleshooting & Risk Mitigation
- ROI & Business Impact
- References

Executive Summary
This authoritative reference guide provides a comprehensive, step-by-step configuration framework for integrating Cisco Meraki wireless networks with Purple’s cloud-based captive portal. Designed for IT managers, network architects, and managed service providers (MSPs), this document details the exact configurations required within the Meraki Dashboard to deploy a secure, high-performance guest WiFi solution [1].
By decoupling the guest intelligence layer from the hardware, enterprise venues can leverage Purple's certified Guest WiFi and WiFi Analytics platforms to capture rich, GDPR-compliant first-party data while ensuring network integrity and regulatory compliance [2]. This guide addresses critical integration parameters, including RADIUS authentication (ports 1812/1813), walled garden domain exceptions, CDN wildcard resolution, and guest redirection mechanics across diverse physical venues such as Retail , Healthcare , Hospitality , and Transport hubs.
Technical Deep-Dive
To successfully integrate Cisco Meraki MR Access Points (APs) with an external captive portal like Purple, network engineers must understand the underlying control and data plane architecture. Unlike traditional on-premise wireless controllers where RADIUS authentication requests are sourced from the physical controller or individual APs, Cisco Meraki employs a cloud-managed architecture [1].
Control Plane and Data Plane Separation
When a guest client associates with an open SSID configured for an external captive portal, the Meraki MR AP places the client in a pre-authentication state. In this state, all traffic is blocked except for DNS queries, DHCP, and traffic destined for IP addresses or hostnames explicitly defined in the Walled Garden [3].
The actual RADIUS Access-Request messages are not generated by the local Meraki MR AP. Instead, they are sourced from the Cisco Meraki Dashboard Cloud Infrastructure [1]. This is a crucial architectural distinction:
> "RADIUS access request messages for a splash page will be sourced from the dashboard, not from the local Meraki devices. As such, the RADIUS server's private LAN IP address cannot be specified here." [1]
Consequently, the upstream firewalls protecting your RADIUS servers must permit inbound traffic from the entire block of Meraki Dashboard outbound IP ranges, which are dynamic and region-specific [1]. These ranges can be retrieved dynamically via the Meraki Dashboard under Help > Firewall info [1].

RADIUS Authentication Protocol (PAP)
For sign-on splash page authentication, Meraki utilizes the Password Authentication Protocol (PAP) [1]. While PAP is historically unencrypted, the Meraki-Purple integration mitigates security risks through multi-layered encryption:
- Client-to-Cloud Encryption: The guest client establishes a secure HTTPS (SSL/TLS) session directly with Purple's hosted captive portal. The credentials (e.g., social login tokens, email forms) are encrypted in transit from the client's browser to Purple's servers [1].
- RADIUS Shared Secret Encryption: When the Meraki Cloud sends the RADIUS Access-Request to Purple's Cloud RADIUS server, it encrypts the user's password using the configured RADIUS Shared Secret and a standard XOR function in accordance with RFC 2865 [1]. This ensures that cleartext credentials are never transmitted over the public internet.
Supported RADIUS Attributes
The Meraki Cloud and Purple Cloud RADIUS exchange several key attributes during the authentication handshake to enforce session parameters and policies:
| RADIUS Attribute | Type | Direction | Description & Practical Context |
|---|---|---|---|
| User-Name | String | Request | The identifier of the guest user (e.g., email address, MAC address) [1]. |
| User-Password | String | Request | The encrypted user password or session token [1]. |
| Called-Station-ID | String | Request | Formatted as AP_MAC:SSID_NAME (e.g., AA-BB-CC-DD-EE-FF:GuestWiFi). Crucial for location-based policy routing [1]. |
| Calling-Station-ID | String | Request | The client's physical MAC address (e.g., 11-22-33-44-55-66). Used for device tracking and session resumption [1]. |
| Session-Timeout | Integer | Accept | The maximum session duration in seconds. After expiration, the client is redirected back to the captive portal [1]. |
| Idle-Timeout | Integer | Accept | The maximum idle time in seconds. If no data is transferred, the session is terminated. Requires RADIUS Accounting [1]. |
| Filter-Id | String | Accept | Conveys a specific Meraki Group Policy name to apply to the client (e.g., limiting bandwidth or blocking specific categories) [1]. |
Implementation Guide
This step-by-step configuration walkthrough outlines how to integrate Cisco Meraki MR access points with Purple's external captive portal.
Step 1: Configure SSID Access Control
Navigate to Wireless > Configure > Access control in the Meraki Dashboard [1]. Select your target guest SSID and configure the following parameters:
- Association Requirements: Set to Open (no encryption) [1]. This ensures a frictionless onboarding experience. If you require encrypted guest transit, consider implementing Passpoint / Hotspot 2.0 with Cloud RADIUS [4].
- Splash Page: Select Sign-on with and choose my RADIUS server from the dropdown menu [1].
- RADIUS Servers: Click Add server and input Purple's Cloud RADIUS primary and secondary endpoints [1]:
- Host IP:
116.203.120.121(Primary) and195.201.123.149(Secondary) - Port:
1812(Authentication) [1] - Secret: [Your Purple Shared Secret]
- Host IP:
- RADIUS Accounting: Set to RADIUS accounting is enabled and add the accounting servers:
- Host IP:
116.203.120.121(Primary) and195.201.123.149(Secondary) - Port:
1813(Accounting) - Secret: [Your Purple Shared Secret]
- Host IP:
- Captive Portal Strength: Select Block all access until sign-on is complete [1]. This strictly enforces that clients cannot access the internet without passing through the splash page.
Step 2: Configure the Custom Splash Page URL
Navigate to Wireless > Configure > Splash page [1]. Select your guest SSID and configure:
- Custom Splash URL: Select Or point to a custom URL and enter the Purple redirection URL:
https://login.venuewifi.com/ip/v2/meraki
- Splash Page Redirect: Set to The URL they were trying to fetch or redirect them to a specific landing page (e.g., your venue's homepage) [3].
Step 3: Configure Walled Garden Domain Name Exceptions
To ensure guest clients can load the captive portal, download assets from Content Delivery Networks (CDNs), and complete social authentication (e.g., Google or Facebook OAuth), you must enable and configure the Walled Garden [3].
Navigate back to Wireless > Configure > Access control and locate the Walled Garden section [1].
- Set Walled Garden to Walled garden is enabled [1].
- In the Walled garden ranges field, enter the required FQDNs and wildcard domains [1].

How Meraki Handles Wildcards and CDN Traffic
Cisco Meraki MR access points support wildcard domains in the walled garden using the asterisk prefix (e.g., *.purple.ai) [1]. However, it is vital to understand the underlying mechanics:
- DNS-Based Whitelisting: The Meraki AP intercepts the client's DNS requests. When the client requests a domain matching an entry in the walled garden, the AP resolves the domain to its current IP address and temporarily permits the client to communicate with that IP [3].
- Dynamic CDN IPs: CDNs like Amazon CloudFront (
*.cloudfront.net) and Akamai (*.akamaihd.net) resolve to highly dynamic, geographically distributed IP addresses that change frequently. Meraki’s DNS-based whitelisting handles this seamlessly by resolving the domains in real-time. Never use static IP addresses for CDN resources in your walled garden, as this will lead to intermittent loading failures of portal assets.
Best Practices
To ensure high availability, security, and optimal user experience, adhere to these industry-standard deployment best practices:
1. Network Segmentation and VLAN Isolation
Never bridge guest traffic directly onto your corporate LAN. Configure your Meraki MR APs to tag guest traffic with a dedicated Guest VLAN (e.g., VLAN 30) [4]. Ensure this VLAN terminates on a DMZ or a separate virtual routing and forwarding (VRF) instance on your upstream firewall. This mitigates lateral movement risks and ensures compliance with security standards like PCI DSS and GDPR [2] [4].
2. Configure Failover and Session Resiliency
Network links can fail. To prevent guests from being locked out of the internet during an authentication server outage, configure the RADIUS Failover Policy in the Meraki Dashboard:
- Failover Policy: Set to Deny access for maximum security, or Allow access if maintaining guest connectivity is prioritized over data capture during an outage.
- Secondary Servers: Always configure both primary and secondary RADIUS servers to distribute load and provide automatic failover [1].
3. Implement Session and Idle Timeouts
Manage your wireless spectrum and DHCP pool leases by configuring appropriate timeout parameters [1]:
- Session Timeout: Set to 1440 minutes (24 hours) for hospitality environments, allowing guests to stay connected throughout their stay without constant re-authentication [1]. For retail or public transport, reduce this to 120 minutes (2 hours) to encourage fresh engagement and free up DHCP leases.
- Idle Timeout: Set to 15 minutes. If a client device goes sleep or leaves the venue, the AP terminates the session, reclaiming network resources [1].
Troubleshooting & Risk Mitigation
When deploying external captive portals on Cisco Meraki, engineers commonly encounter three primary failure modes. Use this diagnostic matrix to quickly isolate and resolve issues:
| Symptom | Root Cause | Diagnostic Step | Remediation |
|---|---|---|---|
| Splash page does not load; browser displays 'Connection Timed Out'. | Upstream firewall is blocking outbound DNS or HTTP/HTTPS traffic to Purple's CDN [1]. | Attempt to resolve login.venuewifi.com from a wired device on the same VLAN. |
Ensure the guest VLAN has outbound access to public DNS (UDP 53) and HTTP/HTTPS (TCP 80/443). |
| Splash page loads, but user credentials fail to authenticate. | Upstream firewall is blocking RADIUS traffic sourced from the Meraki Cloud [1]. | Use the RADIUS Test utility in the Meraki Dashboard under Access Control [1]. | Add the Meraki Dashboard outbound IP ranges (found under Help > Firewall info) to your firewall's outbound allow-list for UDP ports 1812 and 1813 [1]. |
| Social login (e.g., Google OAuth) fails with a redirect error. | Missing required OAuth helper domains in the Meraki Walled Garden [1]. | Check the browser console on the client device for blocked resource loads. | Append the mandatory OAuth domains (e.g., *.googleapis.com, *.gstatic.com) to the Walled Garden list [1]. |
ROI & Business Impact
Integrating Cisco Meraki with Purple transforms guest WiFi from a cost-centre into a strategic business asset. By leveraging enterprise-grade hardware alongside advanced analytics, organizations achieve measurable returns across multiple dimensions:
- Data Monetization & Marketing Reach: By capturing verified email addresses and social profiles, venues build a clean, compliant database of first-party customer data [2]. This feeds directly into customer relationship management (CRM) and marketing automation systems, enabling highly targeted, hyper-local marketing campaigns.
- Operational Efficiency: Automated onboarding via Purple reduces the burden on front-desk and IT support staff. In hospitality environments, this translates to fewer guest complaints regarding WiFi connectivity and lower operational overhead.
- Advanced Footfall Analytics: By combining Meraki's location APIs with Purple's analytics engine, venue operators gain deep insights into visitor behavior, including footfall, dwell times, return rates, and peak busy hours [2]. This data drives informed decisions regarding staffing, store layouts, and real estate valuation.
References
- [1] Cisco Meraki: Configuring RADIUS Authentication with a Sign-On Splash Page
- [2] Purple.ai: The Definitive Guide to Our WiFi Analytics and Guest WiFi Management Platform
- [3] Cisco Meraki: Walled Garden Overview and Configuration
- [4] Cisco Wireless APs: 2026 Guide to Products & Deployment
- [5] 10 Best Network Access Control (NAC) Solutions for 2026
- [6] WiFi in Schools: The 2026 Administrator & IT Guide
- [7] How to Implement 802.1X Authentication with Cloud RADIUS
Key Definitions
Captive Portal
A web page that is displayed to newly connected users of a Wi-Fi network before they are granted broader access to network resources.
Used by venues to enforce terms of service, collect user data, and authenticate guests via RADIUS before allowing internet access.
RADIUS (Remote Authentication Dial-In User Service)
A networking protocol that provides centralized Authentication, Authorization, and Accounting (AAA) management for users who connect and use a network service.
Meraki APs query Purple's Cloud RADIUS servers to verify guest credentials and authorize network access.
Walled Garden
A restricted set of IP addresses or domain names that unauthenticated guest clients are permitted to access before completing the captive portal sign-on process.
Crucial for allowing clients to reach the hosted splash page, download CSS/JS assets from CDNs, and communicate with social login OAuth endpoints.
Session-Timeout
An RFC 2865 RADIUS attribute that specifies the maximum number of seconds a user session can remain active before requiring re-authentication.
Returned by Purple RADIUS in the Access-Accept packet to control how long a guest remains logged in (e.g., 24 hours for hotel guests).
Idle-Timeout
A RADIUS attribute that defines the maximum period of inactivity (no data transferred) allowed before the user's session is terminated.
Used to disconnect stale devices and reclaim IP addresses in high-density environments like stadiums or retail stores.
PAP (Password Authentication Protocol)
A simple, unencrypted authentication protocol used by RADIUS to validate user credentials.
Required by Cisco Meraki for external splash page RADIUS authentication. Security is maintained by encrypting the client-to-portal transit via HTTPS and encrypting the RADIUS packet password field using the shared secret.
Passpoint (Hotspot 2.0)
An industry standard developed by the Wi-Fi Alliance that enables cellular-like automatic roaming and secure connection to Wi-Fi networks.
Supported by Meraki MR access points and Purple to enable seamless, certificate-based guest onboarding without captive portals.
CMX (Cisco Meraki Location APIs)
An API framework that allows Meraki access points to export real-time location and presence data (probe requests) to third-party analytics platforms.
Integrated with Purple to provide detailed footfall, dwell time, and return rate analytics for physical venues.
Worked Examples
A luxury 350-room hotel running Cisco Meraki MR46 access points needs to deploy a secure guest WiFi network. They want to capture guest emails, restrict bandwidth to 5 Mbps per guest, and ensure that guests only need to log in once every 7 days. How should the network architect configure the Meraki Dashboard and RADIUS settings?
- SSID Setup: Configure an open SSID named 'Hotel_Guest' with the splash page set to 'Sign-on with' and 'my RADIUS server'.\n2. RADIUS Configuration: Enter Purple's primary (
116.203.120.121) and secondary (195.201.123.149) RADIUS IPs. Set the authentication port to1812and the accounting port to1813. Configure the shared secret.\n3. Timeout Parameters: In the RADIUS server profile or Purple dashboard, set the Session-Timeout attribute to604800seconds (7 days) and Idle-Timeout to1800seconds (30 minutes) to reclaim inactive DHCP leases.\n4. Traffic Shaping: In the Meraki Dashboard under Wireless > Configure > Firewall & traffic shaping, select the SSID, enable traffic shaping, and set a per-client limit to 5 Mbps downstream and 2 Mbps upstream.\n5. Walled Garden: Enable the walled garden and add*.purple.ai,*.venuewifi.com, and necessary CDN wildcards like*.cloudfront.netto allow the splash page to render pre-authentication.
A national retail chain with 45 stores wants to deploy guest WiFi across all locations using Meraki MR33 APs. They need to ensure consistent configuration, block corporate network access, and collect footfall analytics. How should this be implemented at scale?
- Configuration Templates: Create a single Network Configuration Template in the Meraki Dashboard. Configure the guest SSID with Purple's RADIUS settings, walled garden domains, and the custom splash URL:
https://login.venuewifi.com/ip/v2/meraki. Bind all 45 store networks to this template.\n2. VLAN Segmentation: On each store's local switch and firewall, configure a dedicated Guest VLAN (e.g., VLAN 50). In the Meraki SSID settings, set Client IP Assignment to 'External DHCP server' and specify VLAN 50. Ensure the firewall blocks all routing from VLAN 50 to corporate subnets.\n3. Location Analytics: Enable Meraki Scanning API (CMX) in the Meraki Dashboard under Network-wide > Configure > General. Enter the Purple Post URL and secret validator. This allows Meraki APs to stream real-time probe request data to Purple's analytics engine for footfall and dwell time reporting.
Practice Questions
Q1. A network engineer deploys a new Meraki guest SSID with a Purple captive portal. Unauthenticated clients are successfully redirected to the login page, but when they attempt to use 'Log in with Google', the page spins and eventually fails with a DNS or timeout error. Other login methods (like email form) work perfectly. What is the most likely cause of this issue, and how should it be resolved?
Hint: Consider what external domains the client's browser must reach to complete the Google OAuth handshake before the RADIUS authentication is completed.
View model answer
The most likely cause is that the Google OAuth helper domains are missing from the Meraki SSID's Walled Garden configuration. While the core Purple domains and CDN domains are allowed (which is why the splash page loads), the Google authentication servers are being blocked by the AP's pre-authentication firewall rules. To resolve this, navigate to Wireless > Configure > Access control, select the guest SSID, and append the following Google OAuth domains to the Walled Garden list: accounts.google.com, *.googleapis.com, *.gstatic.com, and *.googleusercontent.com. Once saved, the AP will permit the client to complete the Google authentication handshake and redirect back to Purple to complete the RADIUS login.
Q2. During a post-deployment audit of a high-density stadium WiFi network, the IT team notices that the DHCP pool for the guest VLAN (a /21 subnet with 2048 IPs) is completely exhausted within the first 2 hours of an event, even though active concurrent connections never exceed 800. RADIUS accounting is enabled. How can the network architect adjust the Meraki and RADIUS settings to mitigate this issue?
Hint: Analyze the relationship between client session timeouts, idle timeouts, and DHCP lease times in high-density transient environments.
View model answer
The DHCP pool exhaustion is caused by transient clients (users walking past or entering the stadium briefly) connecting, obtaining an IP address, and then leaving the venue. Because the default Meraki Session-Timeout or DHCP lease time is too long, those IP addresses remain reserved even though the physical devices are no longer present. To resolve this, the architect should implement three coordinated changes: 1) Reduce DHCP Lease Time: On the DHCP server (or Meraki security appliance handling DHCP), reduce the lease time to 10 or 15 minutes. 2) Configure Idle Timeout: Ensure RADIUS accounting is enabled on port 1813 and configure an Idle-Timeout of 10 minutes (600 seconds) in the RADIUS Access-Accept profile. This tells the Meraki AP to terminate the session of any client inactive for 10 minutes. 3) Shorten Session Timeout: Reduce the global Session-Timeout for the stadium profile to 120 minutes (7200 seconds) to force periodic re-evaluation of active devices.
Q3. An MSP is configuring a Meraki guest SSID with a Purple captive portal. They have entered the correct Purple RADIUS server IPs and ports (1812/1813) in the Meraki Dashboard, but when testing with the built-in RADIUS 'Test' tool, all access points fail to reach the server. The MSP verifies that the RADIUS shared secret is correct and that the Purple cloud is online. What routing or firewall configuration did the MSP likely overlook?
Hint: Recall where RADIUS authentication requests are sourced from in a Cisco Meraki cloud-managed architecture.
View model answer
The MSP likely configured their local network firewalls to allow outbound RADIUS traffic from the local AP subnets, but forgot that in a Meraki splash page deployment, RADIUS Access-Requests are sourced directly from the Cisco Meraki Dashboard Cloud Infrastructure, not from the local APs. To resolve this, the MSP must obtain the outbound IP ranges of the Meraki Dashboard (found in the Meraki Dashboard under Help > Firewall info) and configure their upstream corporate firewall to allow inbound and outbound UDP traffic on ports 1812 (Authentication) and 1813 (Accounting) between those Meraki Dashboard IP ranges and Purple's Cloud RADIUS servers. Additionally, they must ensure that the Meraki Dashboard IPs are added as valid RADIUS clients in the Purple portal configuration.
Continue reading in this series
Captive Portal for Ruckus
This technical reference guide provides an authoritative integration playbook for deploying external captive portals on CommScope Ruckus SmartZone and Unleashed architectures. It guides network engineers through step-by-step configurations for Guest WLANs, WISPr redirection, RADIUS AAA server settings, and Walled Garden exceptions to deliver a secure, high-density guest WiFi solution.
Captive Portal for Aruba
An authoritative technical reference guide for configuring Aruba Instant (IAP) and Aruba Central managed access points to redirect guest users to Purple's high-converting, secure external captive portal. This guide covers step-by-step guest SSID setup, external captive portal redirection, RADIUS server authentication and accounting parameters, walled garden exception lists, and WISPr support.
Captive Portal for Ubiquiti UniFi
This authoritative technical guide details the configuration of an external captive portal (Purple) on the Ubiquiti UniFi Network Application. It covers the underlying network mechanics, step-by-step guest network deployment, walled garden whitelisting, RADIUS authentication, and troubleshooting strategies for senior IT professionals and network administrators.