Skip to main content

Captive Portal Architecture: Security, Redirection, and Best Practices

A definitive technical reference on enterprise captive portal architecture. This guide unpacks network isolation, DNS redirection, RADIUS authentication, and security compliance for IT leaders deploying secure, data-rich guest WiFi networks.

📖 5 min read📝 1,232 words🔧 2 worked examples3 practice questions📚 8 key definitions

Listen to this guide

View podcast transcript
Speak in British English with a confident, authoritative, and conversational tone - like a senior network consultant briefing a client over a coffee. Measured pace, clear diction, no rush. Occasional natural pauses for emphasis. Professional but not stiff: Welcome to the Purple Technical Briefing. I'm your host, and today we're going deep on captive portal architecture - specifically the security model, the redirection mechanics, and the design decisions that separate a compliant, well-engineered deployment from one that will cause you problems at three in the morning. [medium pause] Let's set the scene. You're running guest WiFi across a hotel chain, a retail estate, or a stadium. Thousands of devices connect every day. Some of those devices are carrying malware. Some of those users will attempt to access content they shouldn't. And your legal team wants to know, in writing, that you've captured valid consent before you store a single byte of personal data. [medium pause] That's the problem captive portal architecture is designed to solve. Let's unpack how it actually works. [medium pause] Section one. The redirection chain. When a guest device connects to your WiFi SSID, it gets an IP address from a DHCP pool on a dedicated guest VLAN - let's call it VLAN 20. Your corporate devices are on VLAN 10. These two VLANs must never route to each other. That's non-negotiable from a PCI DSS standpoint, and frankly from a basic security standpoint too. Now, the device is connected, but it hasn't authenticated yet. The controller puts it in what we call a pre-authentication state. The device can only reach a small whitelist of domains - the walled garden. Everything else gets intercepted. Here's the clever bit. When the device tries to load a webpage - or when the operating system performs its captive portal detection check, which iOS does automatically by hitting captive.apple.com - the DNS resolver on the gateway returns the IP address of the captive portal server instead of the real destination. The browser follows that redirect and lands on your splash page. [medium pause] This is Layer 3 and Layer 7 working together. The VLAN handles the network isolation. The DNS intercept handles the redirect. And the captive portal handles the identity and consent layer. Three distinct mechanisms, all working in sequence. [medium pause] Section two. Authentication and RADIUS. Once the guest interacts with the splash page - whether that's accepting terms and conditions, entering an email address, authenticating via social login, or verifying an SMS code - the platform needs to tell the network controller to open the firewall for that specific device. This is where RADIUS comes in. RADIUS stands for Remote Authentication Dial-In User Service. It's a protocol defined in RFC 2865, and it's the industry standard for communicating authentication decisions between a policy server and a network access device. Purple operates as a cloud-hosted RADIUS server. When a guest completes the captive portal flow, Purple sends a RADIUS Access-Accept message to the local WiFi controller - whether that's a Cisco Meraki, an HPE Aruba controller, a Ruckus SmartZone, or a Juniper Mist access point. The controller receives that message and transitions the guest device from the pre-authentication state to the authorised state, opening the firewall rules and granting internet access. [medium pause] There's an important extension to RADIUS you should know about: Change of Authorisation, or CoA. CoA allows the RADIUS server to send a mid-session message to the controller to revoke or modify a session that's already active. Purple uses CoA to enforce session timeouts, to disconnect devices that have been flagged for policy violations, and to support right-to-erasure workflows under GDPR - where a user requests deletion of their data, and Purple can immediately revoke their active session. [medium pause] Section three. The walled garden. The walled garden is a whitelist of IP addresses and domain names that unauthenticated devices can reach before they've completed the captive portal flow. Get this wrong, and your splash page won't load. Get it very wrong, and you've created a security gap. At minimum, your walled garden needs to include the captive portal URL itself, any CDN endpoints serving the portal's assets, and the authentication endpoints for any social login providers you're using - Google, Facebook, Microsoft. If you're using SMS verification, you'll need to whitelist the SMS gateway's API endpoint. The trap that catches most deployments is dynamic IP addresses. Cloud services don't always have static IPs. If you whitelist an IP rather than a domain, and that IP changes, your portal breaks. Use domain-based whitelisting where your controller supports it, and test after every change. [medium pause] Section four. Security design. Let's talk about the security architecture in more detail, because this is where most deployments have gaps. First: client isolation. Enable it. This is a setting on the access point that prevents guest devices from communicating directly with each other over the wireless medium. Without it, a compromised device on your guest network can probe and attack other guest devices. It's a one-checkbox fix that eliminates an entire class of peer-to-peer attack. Second: DHCP lease times. In a high-turnover venue - a transport hub, a stadium, a busy retail store - you need short lease times. Thirty to sixty minutes. If you leave the default at twenty-four hours and you have ten thousand devices connecting on a match day, you will exhaust your IP address pool before half-time. New devices won't connect. Your operations team will get complaints. Keep leases short. Third: encryption. Your captive portal must be served over HTTPS with a valid TLS certificate. If it's served over HTTP, modern browsers will flag it as insecure, users will distrust it, and you're transmitting credentials in plaintext. Use TLS 1.2 at minimum; TLS 1.3 is preferred. The WiFi transport layer should use WPA2-AES or WPA3 - never WEP, never TKIP. Fourth: VLAN segmentation. Your guest VLAN must be completely isolated from any network segment that touches payment card data. PCI DSS version 4.0 is explicit on this. If your guest network can route to a subnet containing a point-of-sale system, your entire POS network is in scope for a PCI audit. That's a significant compliance burden. Segment correctly from day one. [medium pause] Section five. GDPR and data compliance. Every captive portal that collects personal data - and email address, phone number, and social login all count as personal data under GDPR - must meet specific requirements. You need a lawful basis for processing. For guest WiFi, that's typically consent. The consent must be freely given, specific, informed, and unambiguous. Pre-ticked boxes don't count. Bundling WiFi consent with marketing consent doesn't count. Purple's conscious-choice opt-in model separates network access consent from marketing consent, so guests can get online without being forced to accept marketing emails. You need to document what data you collect, why you collect it, where it's stored, and how long you retain it. Purple is ISO 27001 certified, GDPR compliant, CCPA compliant, and Cyber Essentials certified. The platform stores data in compliant data centres with documented retention policies. And you need a right-to-erasure workflow. If a guest requests deletion of their data, you must be able to action that within thirty days. Purple's platform supports this natively, and the RADIUS CoA mechanism I mentioned earlier means you can revoke active sessions at the same time. [medium pause] Now let's move to implementation recommendations and the pitfalls we see most often. [medium pause] Pitfall one: misconfigured walled gardens. The splash page loads, but the social login button doesn't work. Or the page loads but the logo doesn't appear because the CDN domain isn't whitelisted. Test your walled garden on a fresh device with no cached DNS before you go live. Pitfall two: shared PSKs. Some venues still use a single WiFi password written on a chalkboard. That's not a captive portal - that's a shared secret that anyone can photograph and share. It gives you no identity data, no consent record, and no ability to revoke individual access. Replace it with a managed captive portal. Pitfall three: insufficient DHCP pool sizing. I've covered this, but it bears repeating. Size your DHCP pool for peak concurrent connections, not average connections. In a stadium with forty thousand fans, you might have twenty thousand devices trying to connect simultaneously. Plan accordingly. Pitfall four: no session timeout. Without a session timeout, a device that connected six months ago and never returned still holds an authorised session state in your controller. That's a stale record that wastes resources and creates audit noise. Set session timeouts. Thirty minutes of inactivity is a reasonable default. [medium pause] Rapid-fire Q and A. Question: Does captive portal work on all devices? Answer: Modern operating systems - iOS, Android, Windows, macOS - all have captive portal detection built in. They detect the redirect and present the portal automatically. Older devices may require the user to open a browser manually. Purple's platform handles both flows. Question: Can we use captive portal alongside 802.1X? Answer: Yes. Many enterprise deployments use 802.1X for staff devices - where certificates or credentials authenticate automatically - and a captive portal for guest devices on a separate SSID. Purple integrates with RADIUS infrastructure that supports both flows simultaneously. Question: What about OpenRoaming? Answer: OpenRoaming is a standard that allows devices to connect to WiFi automatically using certificate-based authentication, bypassing the captive portal entirely. Purple acts as a free identity provider for OpenRoaming under the Connect licence. It's the future direction for seamless guest connectivity, but captive portals remain the standard for data capture and consent management today. [medium pause] To summarise. A well-architected captive portal deployment rests on five pillars. VLAN isolation to protect your corporate network. DNS interception and HTTPS redirection to present the splash page. RADIUS authentication to open the firewall after consent. A correctly configured walled garden to ensure the portal loads reliably. And GDPR-compliant data handling to protect both your guests and your organisation. Purple's platform handles all five layers across 80,000 live venues, with 440 million logins processed in 2024 and 99.999% uptime. It integrates natively with Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme, and Fortinet - so whatever hardware you're running, you can deploy without ripping and replacing. If you want to go deeper on any of these topics - SSID design, RADIUS configuration, or GDPR compliance workflows - visit purple.ai for the full technical guide library. Thanks for listening.

header_image.png

Executive summary

For enterprise venues, guest WiFi is critical infrastructure that demands strict architectural discipline. Bridging the gap between open public access and secure corporate networking requires precise configuration of VLAN isolation, DNS interception, and identity management. This guide dissects the mechanics of enterprise captive portal architecture, stripping away the marketing jargon to explain exactly how it works at the packet level. We cover the core technical components: VLAN segmentation, DHCP pool management, HTTP redirection, RADIUS authentication, and bandwidth shaping.

Whether you are deploying a new network for a Hospitality chain or upgrading legacy infrastructure in Healthcare , understanding these mechanics is essential for mitigating risk, ensuring PCI DSS and GDPR compliance, and capturing actionable first-party data via our WiFi Analytics platform.

Listen to the technical briefing podcast:

Technical deep-dive: how captive portals work

At a fundamental level, an enterprise guest WiFi network operates by deceiving the client device just enough to intercept its traffic, force authentication, and then route it securely to the internet without ever touching the corporate LAN.

1. Logical isolation via VLANs

The foundation of any secure Guest WiFi network is logical separation. When a venue user connects to the guest SSID, the access point tags their traffic with a specific Virtual Local Area Network (VLAN) ID (e.g., VLAN 20), while corporate traffic operates on a separate VLAN (e.g., VLAN 10).

This tagging ensures that at the switch and firewall level, guest traffic is physically incapable of routing to internal subnets containing point-of-sale systems or patient records. The firewall is configured with explicit deny rules for inter-VLAN routing, forcing guest traffic directly out the WAN interface.

architecture_overview.png

2. DHCP and the IP address pool

Upon connection, the client device broadcasts a DHCP Discover packet. The network responds by assigning an IP address from a dedicated guest subnet. A critical technical distinction here is the lease time. While corporate devices might retain an IP for eight days, guest networks must use aggressive lease times (30 to 60 minutes) to prevent IP pool exhaustion in high-turnover environments like Transport hubs.

3. DNS interception and the captive portal

This is where the user experience begins. When the newly connected device attempts to reach a website (or when the OS performs its captive portal detection check, like Apple's captive.apple.com), the network intercepts the DNS request.

Instead of resolving the actual IP address of the requested site, the gateway returns the IP address of the captive portal. The client's browser is then HTTP-redirected to the splash page hosted by Purple.

4. Authentication and RADIUS

Once the user interacts with the captive portal - whether by accepting terms and conditions, entering an email, or using a social login - the platform must inform the local network controller to allow the traffic.

This is handled via the RADIUS (Remote Authentication Dial-In User Service) protocol. Purple acts as the cloud RADIUS server, sending an Access-Accept message back to the local WiFi controller or gateway. The controller then changes the user's state from 'unauthorised' (walled garden access only) to 'authorised', opening the firewall ports for standard internet access.

Implementation guide: building for scale

Deploying guest WiFi requires balancing user friction with security and data capture requirements. Our cloud overlay integrates natively with Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme, and Fortinet hardware.

Step 1: Architect the network topology

Ensure your core switches and firewalls support 802.1Q VLAN tagging. Configure your guest VLAN to terminate at a DMZ interface on the firewall, completely bypassing internal routing tables.

Step 2: Configure the walled garden

A walled garden is a list of IP addresses and domains that unauthenticated users are allowed to access. This must include the URLs required to load the captive portal, CDN assets for logos, and the authentication endpoints for social logins (e.g., Microsoft Entra ID, Okta, Google Workspace). If the walled garden is misconfigured, the splash page will fail to load, resulting in a dead end for the user.

Step 3: Implement client isolation

Enable client isolation on your access points. This prevents connected guest devices from communicating directly with one another over the wireless medium, effectively mitigating peer-to-peer attacks and malware propagation within the guest subnet.

Step 4: Integrate identity management

Move away from shared PSKs. Implement a managed captive portal that captures first-party data through conscious-choice opt-ins. For seamless, secure onboarding, consider implementing OpenRoaming. Purple acts as a free identity provider for OpenRoaming under the Connect plan, allowing devices to authenticate securely via certificates without a traditional splash page. For more on designing multi-network environments, read our guide: Three SSIDs to rule them all: the WiFi design for guest, staff, and IoT .

Best practices and compliance

Compliance is not optional. A properly engineered captive portal protects your organisation from liability and regulatory fines.

security_compliance_checklist.png

GDPR and data privacy

A captive portal collects personal data from the moment a user connects. To meet GDPR requirements, you must capture explicit consent before processing this data. Purple's platform handles the Layer 7 identity and consent requirements necessary for GDPR compliance, ensuring that data is collected legally, stored securely, and can be erased upon request via automated workflows.

PCI DSS v4.0 compliance

If your organisation processes credit cards, your network is subject to PCI DSS. Guest WiFi networks that run on the same network as POS systems can drag the guest network into PCI DSS scope, which creates significant audit burdens. Strict VLAN segmentation is mandatory to ensure guest traffic never touches the cardholder data environment.

Network security standards

Enforce WPA3 or WPA2-AES encryption on the wireless transport layer. Ensure your captive portal is served over HTTPS using TLS 1.2 or TLS 1.3 to protect user credentials during the authentication phase.

Troubleshooting and risk mitigation

Even well-designed networks encounter issues. Here are the most common failure modes and how to avoid them.

Failure mode: IP address exhaustion In a busy Retail environment, devices constantly probe and connect to open networks. If your DHCP lease time is 24 hours, a shopper who walks past your store for five minutes consumes an IP address for the entire day. Mitigation: Reduce DHCP lease times to 30 minutes on the guest VLAN.

Failure mode: Walled garden blocks Cloud services frequently change their IP addresses. If your walled garden uses static IP whitelisting for social login endpoints, authentication will break when those IPs rotate. Mitigation: Use domain-based whitelisting for walled garden entries wherever your hardware controller supports it.

Failure mode: Stale sessions Users leave the venue without disconnecting, but their session remains active on the controller, consuming resources. Mitigation: Implement aggressive idle timeouts (e.g., 30 minutes) and use RADIUS Change of Authorisation (CoA) to actively revoke sessions when time limits are reached.

ROI and business impact

A secure captive portal transforms a traditional IT cost centre into a revenue-generating asset. By capturing verified first-party data, venues can build detailed visitor profiles. Purple processed 440 million logins in 2024 across 80,000+ live venues, proving the scale and reliability of this approach.

For example, McDonald's uses captive portal data to understand diner dwell times and visit frequency, while Manchester Airports Group optimises passenger flow based on connection analytics. The ROI is measured not just in marketing database growth, but in the operational insights derived from the 29 billion data points collected by the platform.

Key Definitions

Captive Portal

A web page that intercepts network traffic and requires user interaction (such as accepting terms or logging in) before granting full internet access.

The primary mechanism for capturing first-party data and enforcing terms of use on guest networks.

RADIUS

Remote Authentication Dial-In User Service. A networking protocol that provides centralised Authentication, Authorization, and Accounting management.

The protocol Purple uses to tell your local WiFi hardware that a guest is allowed to access the internet.

Walled Garden

A restricted list of IP addresses or domains that a user can access before they have authenticated through the captive portal.

Essential for allowing the splash page and social login providers to load while the device is still in a pre-authentication state.

VLAN

Virtual Local Area Network. A logical subnetwork that groups a collection of devices from different physical LANs.

Used to securely segment guest traffic away from corporate traffic, ensuring PCI DSS compliance.

Client Isolation

A wireless security setting that prevents devices connected to the same access point from communicating directly with each other.

Crucial for protecting guests from peer-to-peer attacks and malware spreading across the public network.

DHCP Lease Time

The duration for which an IP address is assigned to a device before it expires and returns to the available pool.

Must be kept short (30-60 mins) on guest networks to prevent running out of IP addresses as visitors come and go.

RADIUS CoA

Change of Authorisation. An extension to RADIUS that allows the server to alter the session state of an active client.

Used by Purple to instantly disconnect users when their time limit expires or if they request data erasure under GDPR.

OpenRoaming

A roaming federation service that allows devices to connect automatically and securely to participating WiFi networks using certificates.

The next generation of seamless connectivity, where Purple acts as a free identity provider under the Connect plan.

Worked Examples

A 200-room hotel needs to deploy guest WiFi across its property. They currently use a single flat network (192.168.1.0/24) for the front desk, back office, and guest access via a shared password. They want to capture guest email addresses for marketing while ensuring the front desk systems are secure.

  1. Implement network segmentation: Create VLAN 10 for the front desk/office and VLAN 20 for guests.
  2. Configure the firewall: Block all routing from VLAN 20 to VLAN 10. Route VLAN 20 directly to the WAN.
  3. Remove the shared password: Deploy an open SSID named 'Hotel_Guest'.
  4. Set up the captive portal: Configure the WiFi controller to redirect unauthenticated HTTP traffic to Purple's captive portal URL.
  5. Configure the walled garden: Whitelist the Purple portal domains and CDN assets so the splash page loads.
  6. Configure RADIUS: Add Purple's RADIUS server IP addresses and shared secrets to the WiFi controller.
  7. Adjust DHCP: Set the VLAN 20 DHCP pool to a /22 subnet with a 60-minute lease time to handle high device turnover.
Examiner's Commentary: This approach resolves the immediate PCI DSS compliance risk by isolating the front desk systems. Moving from a shared password to a RADIUS-backed captive portal enables the required data capture while providing individual session control and accountability.

A large stadium expects 40,000 attendees for a match. They have deployed a captive portal but are concerned about network performance and IP exhaustion during the 3-hour event.

  1. DHCP Sizing: Deploy a /16 subnet for the guest VLAN to provide over 65,000 available IP addresses.
  2. Lease Times: Set the DHCP lease time to 30 minutes to rapidly reclaim IPs from fans who leave early.
  3. Bandwidth Shaping: Apply a per-user rate limit of 5 Mbps down / 2 Mbps up at the controller level to prevent a few users from saturating the 10 Gbps internet pipe.
  4. Client Isolation: Enable AP-level client isolation to prevent broadcast storms and peer-to-peer traffic from degrading wireless performance in the dense stadium environment.
Examiner's Commentary: High-density environments require aggressive resource management. The combination of a large subnet, short leases, and strict bandwidth shaping ensures fair access for all fans while protecting core network stability.

Practice Questions

Q1. You are deploying a captive portal in a hospital waiting room. The splash page loads successfully on Android devices, but iOS devices display a blank white screen. What is the most likely architectural cause?

Hint: Consider how different operating systems detect captive portals and what resources they need to reach.

View model answer

The walled garden is likely misconfigured. iOS devices attempt to reach specific Apple domains (like captive.apple.com) to trigger the portal mini-browser. If these domains or the specific CDN assets required by the splash page are not whitelisted in the walled garden, the page will fail to render correctly in the Apple CNA (Captive Network Assistant).

Q2. A retail chain wants to offer free WiFi but requires users to log in using their Microsoft Entra ID credentials. During testing, users are redirected to the splash page, click the 'Log in with Microsoft' button, but the page times out. Why?

Hint: Think about the state of the firewall before RADIUS authentication completes.

View model answer

The Microsoft Entra ID authentication endpoints have not been added to the walled garden. Because the user is in a pre-authentication state, the firewall blocks all traffic to the internet. To fix this, the specific Microsoft login domains and IP ranges must be whitelisted so the device can communicate with the identity provider to complete the OAuth flow.

Q3. A venue is running out of IP addresses on their guest network every afternoon, despite having fewer concurrent users than their DHCP pool size. What configuration change is required?

Hint: Think about how long a device retains an IP address after it leaves the building.

View model answer

The DHCP lease time is set too high (likely the default of 12 or 24 hours). Devices that connect briefly and leave are holding onto their IP addresses, preventing new devices from connecting. The lease time should be reduced to 30 to 60 minutes to quickly recycle IPs from departed guests.

Continue reading in this series

Optimizing B2B Captive Portals: Capturing Company Names and Professional Data

This guide explains how IT managers, network architects, and venue operations directors can configure B2B captive portals to capture professional data - company names, job titles, and business email addresses - at the point of WiFi login. It covers the full technical architecture from VLAN isolation and RADIUS authentication through to CRM integration with Salesforce and HubSpot, with GDPR and CCPA compliance built in. Venues that deploy this correctly turn their guest WiFi network into a first-party data engine and automated lead generation system.

Read the guide →

Optimising B2B Captive Portals: Capturing Company Names and Professional Data

This guide explains how IT managers, network architects, and venue operations directors can configure B2B captive portals to capture professional data - company names, job titles, and business email addresses - at the point of WiFi login. It covers the full technical architecture from VLAN isolation and RADIUS authentication through to CRM integration with Salesforce and HubSpot, with GDPR and CCPA compliance built in. Venues that deploy this correctly turn their guest WiFi network into a first-party data engine and automated lead generation system.

Read the guide →

How to Set Up a Captive Portal on Starlink: A Guide for Remote & Maritime Venues

This guide details how to bypass the native Starlink hardware and integrate a cloud-managed captive portal using enterprise routing equipment. You will learn how to overcome the CGNAT limitation, enforce VLAN segmentation, manage satellite bandwidth constraints, and ensure regulatory compliance.

Read the guide →