Individuelles Captive Portal: HTML- und CSS-Leitfaden
Dieser maßgebliche technische Referenzleitfaden beschreibt die Entwicklungsstandards, die CSS-Architektur und die Einschränkungen auf Netzwerkebene, die für den Entwurf und die Codierung einer benutzerdefinierten Captive Portal Landingpage erforderlich sind. Er bietet Frontend-Entwicklern und Netzwerkarchitekten umsetzbare Strategien zur Navigation in Apple CNA- und Android-Webview-Umgebungen, um pixelgenaue, konforme und hochperformante Gäste-WiFi-Erlebnisse zu gewährleisten.
Video overview
Diesen Leitfaden anhören
Podcast-Transkript ansehen
Teil unserer Kernserie: Captive Portal Leitfaden →
- Management-Zusammenfassung
- Technischer Deep-Dive
- Der Captive Portal Lifecycle
- Plattformspezifische Einschränkungen von Minibrowsern
- Umgehung der Apple CNA "Fertig"-Button-Falle beim Coding
- Implementierungshandbuch
- Die goldene Regel: Design für null Internetkonnektivität
- 1. Viewport-Konfiguration
- 2. CSS einbetten und externe Abhängigkeiten entfernen
- 3. Base64 Asset-Kodierung
- 4. Optimierung von Eingabefeldern und Touch-Zielen
- 5. Rechtliche Einwilligung und GDPR-Konformität
- Benutzerdefinierte Captive Portal HTML/CSS-Vorlage
- Fehlerbehebung & Risikominimierung
- 1. Die SSL/TLS-Zertifikatswarnschleife
- 2. DNS-Auflösungsfehler (Die Walled-Garden-Falle)
- 3. Sitzungs-Timeout und Schwachstellen bei MAC-Spoofing
- Relevanz der Purple-Produkte: Eigenentwicklung vs. Kauf
- Zusammenfassung der wichtigsten Erkenntnisse
- Referenzen
- Hören Sie sich das technische Briefing an

Management-Zusammenfassung
Für Enterprise-Standorte - von Luxushotels Hospitality und Einzelhandelsketten Retail bis hin zu Verkehrsknotenpunkten Transport und modernen medizinischen Campusen Healthcare - ist die Gäste-WiFi-Begrüßungsseite die digitale Haustür. Allerdings erfolgen über 90% der Gäste-WiFi-Logins auf mobilen Geräten, auf denen die Darstellung nicht durch Standard-Browser wie Safari oder Chrome gesteuert wird, sondern durch stark eingeschränkte Captive Network Assistant (CNA) Webviews [1]. Diese "Mini-Browser" erzwingen strenge Sandbox-Einschränkungen: Sie blockieren externe CDNs, deaktivieren persistente Cookies, ignorieren externe Webfonts und schränken die Ausführung von JavaScript stark ein, um Sicherheitsrisiken zu minimieren und Session-Hijacking zu verhindern [2].
Wenn ein Entwickler eine Begrüßungsseite mit traditionellen Webstandards entwirft, führen diese Einschränkungen zu fehlerhaften Layouts, fehlenden Brand-Assets und nicht funktionierenden Login-Buttons, was sich direkt auf die Kundenzufriedenheit und das digitale Engagement auswirkt. Dieser Leitfaden bietet Lösungen für diese Herausforderungen und stellt defensive Codierungspraktiken vor - wie Inline-CSS, Base64-Asset-Codierung, System-Font-Stacks und explizite navigationsgesteuerte Authentifizierungs-Handshakes -, um ein nahtloses plattformübergreifendes Rendering zu gewährleisten. Darüber hinaus untersuchen wir, wie Entwickler durch die Nutzung einer Managed Solution wie dem Portal-Builder von Purple die volle kreative Kontrolle über HTML/CSS behalten und gleichzeitig die RADIUS-Authentifizierung, die Datenbank-Skalierung, die GDPR/PCI-Compliance und die Multi-Vendor-AP-Integrationen auslagern können [3].
Technischer Deep-Dive
Um ein stabiles, individuelles Captive Portal zu erstellen, müssen Entwickler die Interzeption auf Netzwerkebene und die Browser-Virtualisierung verstehen, die stattfinden, wenn sich ein Gast mit einer offenen SSID verbindet.
Der Captive Portal Lifecycle
Wenn sich ein Client-Gerät mit einer Captive SSID verbindet, wird die folgende Sequenz ausgelöst:
- IP-Zuweisung: Das Gerät schließt einen 3-Wege-Handshake ab und fordert eine IP-Adresse über DHCP an.
- Aktiver Konnektivitätstest: Der Hintergrund-Netzwerkmanager des Betriebssystems sendet sofort einen HTTP-GET-Request an eine dedizierte, herstellerneutrale Canary-URL (z. B. Apples
http://captive.apple.com/hotspot-detect.htmloder Googleshttp://connectivitycheck.gstatic.com/generate_204) [1]. - DNS/HTTP-Interzeption: Der lokale Wireless LAN Controller (WLC) oder Access Point (AP) fängt diesen Port-80-HTTP-Request ab. Anstatt den erwarteten HTTP-Status 200 oder 204 zurückzugeben, leitet das Gateway den Datenverkehr des Clients über einen HTTP-302-Redirect an die URL der Landingpage des Captive Portals weiter [2].
- Webview-Generierung: Nach dem Erkennen des Redirects startet das Betriebssystem seinen nativen Captive Network Assistant (CNA) Mini-Browser, um die weitergeleitete Begrüßungsseite anzuzeigen, sodass der Benutzer keinen vollständigen Browser manuell öffnen muss.5. Authentifizierung und Zustandsübergang: Der Benutzer füllt das Anmeldeformular aus und sendet die Anmeldedaten an den Portal-Server zurück, der das Gateway (häufig über einen RADIUS Access-Accept oder einen externen API-Aufruf) anweist, die MAC-Adresse zu autorisieren.
- CNA-Exit-Handshake: Der CNA-Minibrowser führt einen weiteren HTTP GET zu seiner Canary-URL aus. Wenn er die erwartete Antwort 200/204 erhält, ändert er seine Schaltfläche oben rechts von "Abbrechen" auf "Fertig" und stellt die WiFi Verbindung als primäre Netzwerkschnittstelle her.
Plattformspezifische Einschränkungen von Minibrowsern
Jedes Betriebssystem verarbeitet diesen Lebenszyklus in unterschiedlichen Webview-Umgebungen, was zu einem stark fragmentierten Verhalten führt. Die folgende Tabelle beschreibt diese kritischen Einschränkungen im Detail:
| Plattform / Webview | Anzeigemethode | Persistente Cookies | Externe Webfonts | JavaScript-Ausführung | Fensterabmessungen | Auslöser für Exit-Handshake |
|---|---|---|---|---|---|---|
| Apple iOS CNA (Websheet) | Minibrowser-Popup | Blockiert (Beim Schließen gelöscht) | Blockiert (Offline) | Eingeschränkt (Kein localStorage/sessionStorage) | Responsive (Gerätebreite) | Nur ganzseitiger HTTP-Redirect [1] |
| Apple macOS CNA (Captive Network Assistant) | Minibrowser-Popup | Blockiert | Blockiert | Eingeschränkt (Keine Alert- oder Confirm-Dialoge) | Fest (900px x 572px) | Nur ganzseitiger HTTP-Redirect |
| Android (Google) (CaptivePortalLogin) | Push-Benachrichtigung -> Chrome Custom Tab | Zulässig (Gemeinsam mit Chrome genutzt) | Zulässig (Wenn im Walled Garden freigegeben) | Vollständig | Responsive | Automatisch (Captive Portal API / 204-Prüfung) [2] |
| Samsung Android (Samsung Internet) | Push-Benachrichtigung -> Minibrowser | Zulässig | Zulässig | Vollständig | Responsive | Automatisch |
| Windows 10/11 (Standardbrowser) | Auto-Start des Standardbrowsers | Zulässig (Vollständiger Browserkontext) | Zulässig | Vollständig | Responsive | Manuell / Automatisch |

Umgehung der Apple CNA "Fertig"-Button-Falle beim Coding
Eines der häufigsten Fehlerszenarien bei der Entwicklung individueller Portale ist die "Fertig"-Button-Falle auf iOS-Geräten. Wenn sich ein Benutzer authentifiziert, muss das iOS Websheet-Webview erkennen, dass das Netzwerk nicht mehr captive ist. Dies geschieht durch die Überwachung des Erfolgs seiner im Hintergrund ausgeführten Canary-Anfragen.Entscheidend ist, dass der iOS CNA diese Prüfung nur bei einer vollständigen HTTP-Seitennavigation (Location-Redirect) auslöst. Wenn ein Entwickler eine moderne Single Page Application (SPA) erstellt, die Formulardaten über einen asynchronen AJAX-Aufruf (z. B. fetch() oder Axios) übermittelt und das DOM dynamisch aktualisiert, ohne die URL zu ändern, wird der CNA seine Konnektivitätsprüfung niemals erneut ausführen. Der Benutzer wird auf Gateway-Ebene authentifiziert, aber die Schaltfläche des CNA in der oberen rechten Ecke bleibt auf "Abbrechen" (bzw. "Cancel") stehen. Wenn der frustrierte Benutzer auf "Abbrechen" klickt, trennt das iOS-Gerät sofort die Verbindung zur SSID und beendet die WiFi-Sitzung [1].
Um dies zu verhindern, muss der Handler für den erfolgreichen Authentifizierungsabschluss eine vollständige Seitenweiterleitung zu einer physischen Landingpage durchführen (z. B. window.location.href = '/success') oder das Anmeldeformular nativ über eine Standard-HTTP-POST-Aktion übermitteln.
Implementierungshandbuch
Um eine konsistente Darstellung auf allen Plattformen zu gewährleisten, müssen Entwickler von modernen, asset-lastigen Webdesigns zu einem hochgradig in sich geschlossenen, defensiven Codierungsstil übergehen.
Die goldene Regel: Design für null Internetkonnektivität
Während des Captive-Zustands hat das Client-Gerät keinen Zugriff auf das breitere Internet. Es kann nur IP-Adressen und Domänen auflösen und darauf zugreifen, die explizit in der Walled Garden-Liste des Wireless-Controllers freigegeben sind (wie z. B. die IP-Adresse des Captive Portal-Servers selbst). Daher schlägt das Laden aller in Ihrem HTML referenzierten externen Ressourcen fehl, was zu einem fehlerhaften Layout führt.
Um defensiv zu gestalten, implementieren Sie die folgende Checkliste für Mobile-First Captive Portal-Design:

1. Viewport-Konfiguration
Um zu verhindern, dass Mobilgeräte den Viewport auf eine Desktop-Breite (typischerweise 980px) herunterskalieren, muss der HTML-<head> ein responsives Viewport-Meta-Tag enthalten. Ohne dieses Tag erscheinen Text- und Eingabefelder auf Mobilgeräten mikroskopisch klein:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
2. CSS einbetten und externe Abhängigkeiten entfernen
Verlinken Sie niemals auf externe CSS-Dateien oder CDNs (z. B. Bootstrap, Tailwind oder Google Fonts). Sämtlicher CSS-Code muss in einem <style>-Block im HTML-<head> eingebettet sein.
Verwenden Sie für die Typografie einen System-Schriftstapel (System Font Stack), der auf vorinstallierte lokale Betriebssystem-Schriftarten verweist. Dies vermeidet HTTP-Anfragen vollständig und stellt sicher, dass die Seite sofort mit der nativen, hochwertigen serifenlosen Schriftart des Geräts geladen wird:
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
background-color: #F5F1ED; /* Pearl White Brand Colour */
color: #011638; /* Dark Blue Brand Colour */
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
}
3. Base64 Asset-Kodierung
Bilder, Logos und Icons sollten nicht über externe HTTP-URLs referenziert werden, es sei denn, die Hosting-Domain ist im Walled Garden des Gateways auf der Whitelist. Die zuverlässigste Methode besteht darin, kleine visuelle Assets (wie PNG- oder SVG-Logos) direkt als Base64-Daten-URIs in das HTML oder CSS zu kodieren:
<!-- Inline Base64 Logo Beispiel -->
<img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj48Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSI0MCIgZmlsbD0iIzc0NThGRCIvPjwvc3ZnPg==" alt="Purple Logo" class="brand-logo">
4. Optimierung von Eingabefeldern und Touch-Zielen
Um den Standards für mobile Benutzerfreundlichkeit (wie den Human Interface Guidelines von Apple) zu entsprechen, müssen alle interaktiven Elemente für die Toucheingabe optimiert sein:
- Schriftgröße für Eingaben: Die Schriftgröße für Eingabetexte muss mindestens 16px betragen. Wenn die Schriftgröße geringer ist (z. B. 14px), zoomen iOS Safari und der CNA beim Fokussieren automatisch in das Eingabefeld hinein, was das Seitenlayout verzerrt [1].
- Touch-Ziele: Schaltflächen, Kontrollkästchen und Links müssen eine Mindestgröße für das Touch-Ziel von 44px x 44px aufweisen, um versehentliche Klicks oder Frustration bei den Benutzern zu vermeiden.
5. Rechtliche Einwilligung und GDPR-Konformität
Bei der Erfassung von Gästedaten (z. B. E-Mail, Telefonnummer oder Social-Media-Profile) muss die HTML-Struktur eine ausdrückliche rechtliche Einwilligung unterstützen. Gemäß GDPR sind vorausgewählte Kontrollkästchen oder implizite Einverständniserklärungen (z. B. „Mit der Anmeldung stimmen Sie unseren Bedingungen zu“) nicht konform [3].
- Stellen Sie ein standardmäßig nicht ausgewähltes Kontrollkästchen für die Allgemeinen Geschäftsbedingungen und Datenschutzrichtlinien bereit.
- Platzieren Sie detaillierten Rechtstext in einem scrollbaren Container mit begrenzter Höhe (
max-height: 120px; overflow-y: auto;), um das Hauptanmeldeformular im sichtbaren Bereich (above the fold) zu halten.
<div class="consent-container">
<input type="checkbox" id="terms_consent" name="terms_consent" required>
<label for="terms_consent">
Ich stimme den <a href="#" onclick="showTerms()">Nutzungsbedingungen</a> ausdrücklich zu und willige in die Verarbeitung meiner Daten gemäß der <a href="#" onclick="showPrivacy()">Datenschutzrichtlinie</a> ein.
</label>
</div>
Haben Sie Fragen zu Ihrem spezifischen Setup?
Unser Team arbeitet mit Standortbetreibern, IT-Managern und Netzwerktechnikern an über 80.000 Standorten zusammen. Buchen Sie ein 20-minütiges Gespräch und wir zeigen Ihnen, wie andere diese Herausforderungen gelöst haben.
Benutzerdefinierte Captive Portal HTML/CSS-Vorlage
Unten finden Sie eine vollständige, produktionsbereite HTML/CSS-Vorlage in einer einzigen Datei, die alle Mobile-First- und CNA-konformen Best Practices berücksichtigt. Sie bietet ein responsives Layout, einen System-Schriftstapel, Base64-bereite Platzhalter für Assets, touchfreundliche Eingabefelder und explizite, GDPR-konforme Einwilligungsstrukturen:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Gast WiFi Login</title>
<style>
/* CSS Reset & Variablen-Deklarationen */
:root {
--color-primary: #7458FD; /* Purple Markenfarbe */
--color-dark: #011638; /* Dunkelblau */
--color-light: #F5F1ED; /* Perlenweiß */
--color-white: #FFFFFF;
--color-border: #D1D5DB;
--radius-container: 12px;
--radius-element: 6px;
}
* {
box-sizing: border-box;
-webkit-tap-highlight-color: transparent;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
background-color: var(--color-light);
color: var(--color-dark);
margin: 0;
padding: 20px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
}
/* Responsives Card-Layout */
.portal-card {
background-color: var(--color-white);
width: 100%;
max-width: 420px;
padding: 32px 24px;
border-radius: var(--radius-container);
box-shadow: 0 4px 20px rgba(1, 22, 56, 0.05);
text-align: center;
}
.logo-container {
margin-bottom: 24px;
}
/* Eingebetteter Base64 Logo-Platzhalter */
.logo {
width: 120px;
height: auto;
}
h1 {
font-size: 24px;
font-weight: 700;
margin: 0 0 8px 0;
color: var(--color-dark);
}
p {
font-size: 14px;
color: #4B5563;
margin: 0 0 24px 0;
line-height: 1.5;
}
/* Formular-Styles */
.form-group {
text-align: left;
margin-bottom: 16px;
}
label {
display: block;
font-size: 14px;
font-weight: 600;
margin-bottom: 6px;
color: var(--color-dark);
}
/* Wichtig: Schriftgröße muss mindestens 16px betragen, um den iOS Auto-Zoom zu verhindern */
input[type="email"],
input[type="text"] {
width: 100%;
height: 48px;
padding: 12px 16px;
font-size: 16px;
border: 1px solid var(--color-border);
border-radius: var(--radius-element);
background-color: var(--color-white);
color: var(--color-dark);
outline: none;
transition: border-color 0.2s;
}
input[type="email"]:focus,
input[type="text"]:focus {
border-color: var(--color-primary);
box-shadow: 0 0 0 3px rgba(116, 88, 253, 0.15);
}
/* Einwilligung-Styles */
.consent-group {
display: flex;
align-items: flex-start;
text-align: left;
margin: 20px 0;
}
/* Touch-freundliche Zielgröße */
input[type="checkbox"] {
width: 20px;
height: 20px;
margin: 2px 12px 0 0;
flex-shrink: 0;
cursor: pointer;
accent-color: var(--color-primary);
}
.consent-label {
font-size: 13px;
line-height: 1.4;
color: #4B5563;
user-select: none;
}
.consent-label a {
color: var(--color-primary);
text-decoration: none;
font-weight: 600;
}
.consent-label a:hover {
text-decoration: underline;
}
/* Touch-Friendly CTA Button (Minimum 44px height) */
.btn-submit {
width: 100%;
height: 48px;
background-color: var(--color-primary);
color: var(--color-white);
border: none;
border-radius: var(--radius-element);
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: background-color 0.2s;
display: flex;
align-items: center;
justify-content: center;
}
.btn-submit:hover {
background-color: #5B3EE3;
}
.btn-submit:active {
background-color: #4A2FD4;
}
/* Legal Terms Scrollbox */
.terms-scrollbox {
display: none; /* Toggled via JS */
text-align: left;
font-size: 11px;
color: #6B7280;
background-color: var(--color-light);
padding: 12px;
border-radius: var(--radius-element);
max-height: 100px;
overflow-y: auto;
margin-bottom: 16px;
border: 1px solid var(--color-border);
}
.footer {
margin-top: 24px;
font-size: 11px;
color: #9CA3AF;
}
</style>
</head>
<body>
<div class="portal-card">
<div class="logo-container">
<!-- Replace src with your actual Base64-encoded SVG or PNG -->
<svg class="logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 30">
<rect width="100" height="30" rx="6" fill="#7458FD"/>
<text x="50" y="20" font-family="sans-serif" font-size="12" fill="#FFFFFF" font-weight="bold" text-anchor="middle">IHRE MARKE</text>
</svg>
</div>
<h1>Willkommen im Gäste WiFi</h1>
<p>Bitte geben Sie unten Ihre Daten ein, um einen sicheren, schnellen Internetzugang zu erhalten.</p>
<!-- Form must submit natively (full page navigation) to clear Apple CNA -->
<form action="/login/submit" method="POST" onsubmit="return validateForm()">
<div class="form-group">
<label for="guest_name">Vollständiger Name</label>
<input type="text" id="guest_name" name="name" placeholder="Max Mustermann" required autocomplete="name">
</div>
<div class="form-group">
<label for="guest_email">E-Mail-Adresse</label>
<input type="email" id="guest_email" name="email" placeholder="john@example.com" required autocomplete="email">
</div>
<div class="consent-group">
<input type="checkbox" id="terms_consent" name="terms_accepted" required>
<label for="terms_consent" class="consent-label">
Ich akzeptiere die <a href="#" onclick="toggleTerms(event)">Nutzungsbedingungen</a> und willige in die Datenverarbeitung gemäß den GDPR-Vorschriften ein.
</label>
</div>
<div id="terms_box" class="terms-scrollbox">
<strong>WiFi Nutzungsbedingungen:</strong><br>
1. Dieser Dienst wird ohne Gewährleistung bereitgestellt.<br>
2. Nutzer dürfen keine illegalen, bandbreitenintensiven Aktivitäten durchführen.<br>
3. Personenbezogene Daten werden ausschließlich für die Authentifizierung und Marketing-Einwilligungen in Übereinstimmung mit unserer Datenschutzrichtlinie erhoben.
</div>
<button type="submit" class="btn-submit">Mit WiFi verbinden</button>
</form>
<div class="footer">
Powered by Purple | Secure Guest WiFi
</div>
</div>
<script>
function toggleTerms(e) {
e.preventDefault();
var box = document.getElementById('terms_box');
box.style.display = (box.style.display === 'block') ? 'none' : 'block';
}
function validateForm() {
var consent = document.getElementById('terms_consent');
if (!consent.checked) {
alert('Sie müssen die Nutzungsbedingungen akzeptieren, um eine Verbindung herzustellen.');
return false;
}
return true;
}
</script>
</body>
</html>
Fehlerbehebung & Risikominimierung
Bei der Bereitstellung von selbst codierten HTML/CSS-basierten Captive Portals stoßen IT-Betriebsteams häufig auf mehrere schwerwiegende operationelle Risiken:
1. Die SSL/TLS-Zertifikatswarnschleife
Da Captive Portals durch das Abfangen von Datenverkehr funktionieren, stellen sie einen grundlegenden Konflikt mit der modernen HTTPS-Websicherheit dar. Wenn ein Nutzer versucht, eine HTTPS-Website aufzurufen (z. B. https://www.google.com), und das Gateway versucht, diesen Datenverkehr auf ein HTTP-basiertes Captive Portal umzuleiten, erkennt der Browser eine Diskrepanz im SSL-Zertifikat und zeigt eine kritische Sicherheitswarnung "Ihre Verbindung ist nicht privat" an.
- Risikominimierung: Versuchen Sie niemals, HTTPS-Datenverkehr direkt abzufangen. Verlassen Sie sich stattdessen vollständig auf den nativen CNA-Assistenten des Betriebssystems (der eine unverschlüsselte HTTP-Anfrage stellt, um die Umleitung auszulösen). Stellen Sie sicher, dass die Domain Ihres Captive Portals über ein gültiges, öffentlich vertrauenswürdiges SSL-Zertifikat (z. B. Let's Encrypt oder DigiCert) verfügt und erst dann über HTTPS bereitgestellt wird, wenn die anfängliche HTTP-Umleitung den Nutzer erfolgreich zu Ihrer Portal-Domain weitergeleitet hat [2].
2. DNS-Auflösungsfehler (Die Walled-Garden-Falle)
Wenn Ihre benutzerdefinierte HTML-Seite auf externe Ressourcen verweist - wie z. B. einen OAuth-Endpunkt für Social Login (z. B. Facebook, Google) oder ein Zahlungs-Gateway - schlagen die DNS-Anfragen für diese Domains fehl, es sei denn, sie sind explizit im Walled Garden des Wireless Controllers freigegeben. Wenn eine Domain in der Whitelist fehlt, gerät der Anmeldefluss ins Stocken und zeigt einen leeren Bildschirm an.
- Risikominderung: Führen Sie eine strikte, minimale Walled Garden-Liste. Bei der Verwendung von Social Logins sollten Sie die spezifischen Wildcard-Domains freigeben, die von den Identitätsanbietern empfohlen werden (z. B.
*.google.com,*.gstatic.com).
3. Sitzungs-Timeout und Schwachstellen bei MAC-Spoofing
Standardmäßige Captive Portals authentifizieren Geräte anhand ihrer MAC-Adressen. Moderne mobile Betriebssysteme (iOS 14+ und Android 10+) verwenden jedoch standardmäßig zufällige MAC-Adressen (private WiFi-Adressen) und rotieren diese regelmäßig. Dies kann dazu führen, dass Gäste wiederholt zur erneuten Authentifizierung aufgefordert werden, was die Benutzererfahrung beeinträchtigt [1].
- Risikominderung: Implementieren Sie angemessene Sitzungs-Timeouts (z. B. 24 Stunden) auf dem RADIUS-Server, um veraltete Sitzungen zu verhindern, und nutzen Sie moderne Authentifizierungsstandards wie Passpoint (Hotspot 2.0) oder WPA3-Enterprise für ein nahtloses, sicheres Onboarding, das MAC-basierte Captive Portals vollständig umgeht.
Relevanz der Purple-Produkte: Eigenentwicklung vs. Kauf
Während das Codieren einer einzelnen HTML-Seite unkompliziert ist, stellt das Hosten, Sichern und Skalieren einer benutzerdefinierten Captive Portal-Infrastruktur enorme technische und Compliance-Hürden dar. Die folgende Tabelle vergleicht die entwicklungsbezogenen und operativen Realitäten eines selbstgehosteten benutzerdefinierten Portals mit der verwalteten Enterprise-Plattform von Purple:
| Feature / Betriebliche Anforderung | Selbstgehostetes benutzerdefiniertes Portal | Purple Enterprise WiFi Plattform |
|---|---|---|
| HTML/CSS-Anpassung | Vollständig manuelle Codierung, Hochladen von Dateien auf einzelne APs oder lokale Webserver. | Pixelgenauer Entwickler-Editor, der benutzerdefinierte HTML/CSS-Injections ermöglicht, kombiniert mit einem visuellen Drag-and-Drop-Builder. |
| RADIUS-Infrastruktur | Hochverfügbare FreeRADIUS- oder Cloud-RADIUS-Server müssen bereitgestellt, konfiguriert und gewartet werden [4]. | Integrierte, global verteilte, cloud-native RADIUS-Infrastruktur mit Active-Active-Redundanz und 99,99 % Verfügbarkeits-SLAs. |
| Multi-Vendor-AP-Unterstützung | Benutzerdefinierte Integrationsskripte für jeden Hardware-Hersteller (Cisco, Aruba, Meraki, Ruckus) erforderlich [5]. | Native Out-of-the-box-Integration mit über 200 Hardware-Modellen; einheitliche Portal-Bereitstellung über heterogene Hardware-Infrastrukturen hinweg. |
| Datenschutz & Compliance | Der Betreiber übernimmt die 100%ige rechtliche Haftung für die Einhaltung von GDPR, CCPA und PCI-DSS, einschließlich sicherer Datenbankverschlüsselung und Workflows zur Datenlöschung. | Vollständig konform durch Design. Integriertes Einwilligungsmanagement, automatisierte Löschanfragen von Betroffenen und sicheres, ISO 27001-zertifiziertes Hosting. |
| Analytics & Marketing | Erfordert den Aufbau benutzerdefinierter Pipelines für die Datenerfassung und die Integration von Marketing-Tools von Drittanbietern. | Enterprise-grade Analytics-Dashboard mit Echtzeit-Besucherstromanalyse, Kennzahlen zur Wiederkehrrate und automatisierten Auslösern für Marketingkampagnen [6].\n |
- Minderungs-ROI: Die Implementierung eines expliziten, nicht angekreuzten Zustimmungs-Kontrollkästchens und das Hosten von Bedingungen in einer optimierten Scrollbox gewährleistet eine 100%ige Einhaltung von Vorschriften, minimiert das Risiko von Bußgeldern in Millionenhöhe und schützt den Ruf der Marke.
Zusammenfassung der wichtigsten Erkenntnisse
- Die CNA-Sandbox ist restriktiv: Apples iOS Websheet und macOS CNA sind stark eingeschränkte Sandbox-Umgebungen, die externe Ressourcen, Cookies und Web-Schriftarten blockieren. Das gesamte Styling und alle Ressourcen müssen in sich geschlossen sein (Inline-CSS, Base64-Bilder, System-Schriftarten) [1].
- AJAX unterbricht den iOS-Exit-Handshake: Um das iOS-Gerät erfolgreich von "gesperrt" auf "verbunden" umzustellen (wodurch sich die Schaltfläche oben rechts von "Abbrechen" auf "Fertig" ändert), müssen Sie eine ganzseitige HTTP-Weiterleitung auslösen. Asynchrone DOM-Aktualisierungen führen dazu, dass das Gerät in einer Captive-Schleife verbleibt.
- Mobile-First ist obligatorisch: Über 90 % der Anmeldungen erfolgen auf Mobilgeräten. Entwerfen Sie ein einspaltiges Layout (max-width: 480px), nutzen Sie touchfreundliche Tippziele (mindestens 44px x 44px) und erzwingen Sie eine Schriftgröße von mindestens 16px bei allen Texteingaben, um ein automatisches Heranzoomen des iOS-Browsers zu verhindern.
- Walled Gardens steuern DNS: Jede externe Domain, auf die während des Logins verwiesen wird (z. B. APIs für Social Logins), muss explizit in der Walled Garden-Liste des Wireless-Controllers freigegeben werden, andernfalls kann die Seite nicht geladen werden.
- Purple beseitigt Backend-Komplexität: Die Nutzung des Portal-Builders von Purple gibt Entwicklern die vollständige HTML/CSS-Kontrolle über einen benutzerdefinierten Editor, während die immense Last in Bezug auf Sicherheit, Skalierung und Compliance für RADIUS, AP-Integrationen verschiedener Hersteller und GDPR-konformes Datenbankmanagement abgegeben wird [3].
Referenzen
- [1] Wireless Broadband Alliance: Captive Network Portal Behaviour
- [2] Android Open Source Project: Captive Portal Login Webview Integration
- [3] European Data Protection Board: Guidelines on Consent under Regulation 2016/679
- [4] So implementieren Sie die 802.1X-Authentifizierung mit Cloud RADIUS
- [5] Cisco Wireless APs: 2026 Guide to Products & Deployment
- [6] Purple WiFi Marketing- & Analyseplattform
Hören Sie sich das technische Briefing an
Hören Sie einem Senior Solutions Architect zu, der die technischen Einschränkungen und Implementierungsstrategien für benutzerdefinierte Captive Portals erläutert:
Schlüsseldefinitionen
Captive Portal
Eine Webseite, die neu verbundenen Benutzern eines WiFi-Netzwerks angezeigt wird, bevor ihnen ein breiterer Zugriff auf Netzwerkressourcen gewährt wird. Sie wird in der Regel für die Authentifizierung, die Bezahlung oder die Anzeige von Nutzungsbedingungen verwendet.
IT-Teams stellen Captive Portals auf Gateway-Ebene bereit, um den Gastzugang zu kontrollieren, Benutzerdaten zu erfassen und die Einhaltung gesetzlicher Vorschriften zu erzwingen.
Captive Network Assistant (CNA)
Ein stark eingeschränkter, Sandbox-geschützter Mini-Browser, der von Betriebssystemen (wie Apple iOS und macOS) automatisch gestartet wird, sobald sie eine Umleitung über ein Captive-Netzwerk erkennen, und der ausschließlich dazu dient, die Portal-Authentifizierung zu erleichtern.
CNA-Webviews erzwingen strenge Einschränkungen, einschließlich der Blockierung externer CDNs, persistenter Cookies und des lokalen Speichers, was standardmäßige Webdesigns häufig unbrauchbar macht.
Walled Garden
Eine eingeschränkte Liste von IP-Adressen, Subnetzen oder Domainnamen, auf die ein nicht authentifizierter Gastbenutzer über das Gateway zugreifen darf, bevor er den Anmeldevorgang am Captive Portal abgeschlossen hat.
Entwickler müssen sicherstellen, dass jede externe Ressource (wie Social-Login-APIs oder Payment Gateways) im Walled Garden auf der Whitelist steht, damit der Login-Prozess nicht ins Stocken gerät.
Base64-Codierung
Ein Binär-zu-Text-Codierungsschema, das Binärdaten (wie Bilder) als ASCII-Zeichenfolge darstellt, sodass Ressourcen direkt in HTML- oder CSS-Dokumente eingebettet werden können.
Die Verwendung der Base64-Codierung für Logos und Symbole eliminiert externe HTTP-Anfragen und stellt sicher, dass Design-Elemente in Offline-CNA-Umgebungen einwandfrei gerendert werden.
RADIUS (Remote Authentication Dial-In User Service)
Ein Netzwerkprotokoll, das eine zentralisierte Verwaltung für Authentifizierung, Autorisierung und Abrechnung (AAA) für Benutzer bietet, die sich mit einem Netzwerkdienst verbinden und diesen nutzen.
Der Captive Portal-Server kommuniziert mit einem RADIUS-Server, um die MAC-Adresse des Gasts am Netzwerk-Gateway freizugeben, sobald die Authentifizierungskriterien erfüllt sind.
System-Schriftstapel
Eine CSS font-family-Deklaration, die vorinstallierten Betriebssystem-Schriftarten (wie San Francisco auf iOS, Segoe UI auf Windows und Roboto auf Android) den Vorzug vor externen Webfonts gibt.
Die Implementierung eines System-Schriftstapels sorgt für ein sofortiges Rendern der Typografie, ohne blockierte externe HTTP-Anfragen an Dienste wie Google Fonts auszulösen.
Canary URL
Eine dedizierte, unverschlüsselte HTTP-URL, die von Betriebssystemherstellern gepflegt wird (z. B. captive.apple.com), um zu testen, ob ein Gerät über eine uneingeschränkte Internetverbindung verfügt.
Der Hintergrund-Netzwerkmanager des Betriebssystems prüft diese URL, um das Vorhandensein eines Captive Portals zu erkennen und das CNA-Webview-Popup auszulösen.
Passpoint (Hotspot 2.0)
Ein von der WiFi Alliance entwickelter Industriestandard, der es mobilen Geräten ermöglicht, WiFi-Hotspots automatisch zu erkennen und sich sicher an ihnen zu authentifizieren, wodurch manuelle Captive Portal-Anmeldungen umgangen werden.
Unternehmen nutzen Passpoint zusammen mit Plattformen wie Purple, um Gästen den Übergang von aufwendigen Splash Pages zu nahtlosen, mobilfunkähnlichen, sicheren Roaming-Erlebnissen zu ermöglichen.
Ausgearbeitete Beispiele
Eine luxuriöse Hotelkette mit 250 Zimmern [Hospitality](/industries/hospitality) möchte eine individuelle Gäste-WiFi-Anmeldeseite implementieren, die perfekt zu ihren Premium-Markenrichtlinien passt. Ihre Kreativagentur hat eine Splash-Page entworfen, die eine benutzerdefinierte Markentypografie (gehostet auf Adobe Fonts), mehrere hochauflösende Hintergrundbilder (gehostet auf einem öffentlichen AWS S3-Bucket) und einen mehrstufigen animierten JavaScript-Assistenten nutzt. Nach der Bereitstellung verbinden sich iOS-Gäste mit der SSID, aber das Portal wird als leerer weißer Bildschirm angezeigt, und Benutzer können sich nicht authentifizieren.
Um den leeren Bildschirm und das fehlerhafte Branding zu beheben, müssen wir die Frontend-Architektur des Portals neu strukturieren, um den Einschränkungen der Apple CNA-Sandbox zu entsprechen:
- Behebung der Typografie: Da Adobe Fonts eine externe HTTP-Anfrage erfordert, die von der CNA blockiert wird, ersetzen wir den Aufruf der benutzerdefinierten Schriftart durch einen nativen, hochwertigen System-Schriftstapel (
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;). Dies gewährleistet ein sofortiges Rendern ohne externe Netzwerkaufrufe. - Asset-Optimierung: Die Hintergrundbilder auf AWS S3 werden blockiert, da sich S3 nicht im Walled Garden des Gateways befindet. Wir komprimieren das primäre Markenlogo, konvertieren es in ein leichtgewichtiges SVG und codieren es direkt im HTML als Base64-Daten-URI. Für den Hintergrund ersetzen wir die schweren Bilder durch einen sauberen, responsiven CSS-Verlauf unter Verwendung der Markenfarben des Hotels, was das Seitengewicht erheblich reduziert.
- JavaScript-Vereinfachung: Der mehrstufige animierte Assistent basiert auf externen jQuery- und GSAP-Bibliotheken. Wir entfernen diese externen Abhängigkeiten und strukturieren das Formular in eine einseitige, einspaltige HTML-Struktur um. Die Formularvalidierung wird in leichtgewichtigem, reinem JavaScript neu geschrieben.
- Authentifizierungs-Handshake: Die Formularübermittlung wird von einer AJAX-basierten Übermittlung in ein natives HTML-Element
<form action="/submit" method="POST">geändert, um eine vollständige Seitenweiterleitung auszulösen. Dies ermöglicht es dem iOS Websheet, seine Canary-Prüfung auszuführen und die Schaltfläche "Fertig" anzuzeigen.
Eine nationale Einzelhandelskette [Retail](/industries/retail) mit 450 Filialen möchte E-Mail-Adressen von Gästen über WiFi Splash-Pages erfassen, um ihr CRM zu füllen. Sie verlangen von den Gästen, dass sie sich für Marketing-Newsletter anmelden. Der ursprüngliche Entwurf sieht ein vorab ausgewähltes Kontrollkästchen "Ich stimme dem Erhalt von Marketing-E-Mails zu" vor. Darüber hinaus wird das Portal auf einem einzigen lokalen Server in der Zentrale gehostet. Während der Stoßzeiten (Samstagnachmittag) kommt es bei Gästen im ganzen Land zu schweren Verzögerungen, und viele können die Anmeldeseite nicht laden, was zu einem massiven Einbruch der Datenerfassungsraten führt.
Wir müssen sowohl den Compliance-Verstoß als auch den Infrastruktur-Engpass beheben:
- Compliance-Behebung: Gemäß GDPR und CCPA sind vorab angekreuzte Einverständniserklärungen illegal. Wir ändern das HTML so, dass das Kontrollkästchen für die Marketing-Einwilligung standardmäßig nicht aktiviert ist (
<input type="checkbox" id="marketing_consent">). Zudem fügen wir ein separates, obligatorisches Kontrollkästchen für die Nutzungsbedingungen hinzu, um die rechtliche Vereinbarung von der Marketing-Einwilligung zu entkoppeln. - Skalierung der Infrastruktur: Das Hosting eines landesweiten Captive Portals auf einem einzigen zentralisierten Server stellt einen Single Point of Failure und einen massiven Latenz-Engpass dar. Wir migrieren das Portal-Frontend zu einem hochverfügbaren, global verteilten Content Delivery Network (CDN) mit Edge-Caching.
- RADIUS-Integration: Wir konfigurieren die Access Points der lokalen Geschäfte so, dass sie auf ein Cloud-natives RADIUS-Cluster mit Active-Active-Redundanz verweisen. Dadurch wird sichergestellt, dass Authentifizierungsanfragen lokal am Edge mit einer Latenz von unter 50 ms verarbeitet werden, selbst während der Hauptverkehrszeiten am Samstag.
- Migration zu Purple: Um diesen gesamten Entwicklungsaufwand zu eliminieren, migriert der Einzelhändler zu Purple. Die integrierten GDPR-Einwilligungstools von Purple verwalten rechtskonforme Opt-ins automatisch, und die global verteilte Cloud-Infrastruktur verarbeitet Millionen von täglichen Authentifizierungen mit 99,99 % Betriebszeit, wodurch der Skalierungs-Engpass vollständig behoben wird.
Übungsfragen
Q1. Ein IT-Team an einem großen internationalen Flughafen [Transport](/industries/transport) stellt ein selbst programmiertes Captive Portal bereit. Sie stellen fest, dass sich Android-Nutzer zwar nahtlos verbinden, ein erheblicher Teil der iOS-Nutzer jedoch ein Problem hat: Sie authentifizieren sich erfolgreich, können aber nicht im Internet surfen. Bei genauerer Betrachtung zeigen die iOS-Geräte an, dass sie mit der SSID verbunden sind, aber die Schaltfläche oben rechts im Captive-Popup zeigt immer noch "Abbrechen" anstelle von "Fertig". Was ist die Ursache für dieses Problem und wie sollte der Entwickler es beheben?
Hinweis: Analysieren Sie, wie der Apple CNA-Assistent erkennt, dass ein Netzwerk von einem gesperrten in einen authentifizierten Zustand übergegangen ist, und welche Browseraktion erforderlich ist, um diese Prüfung auszulösen.
Musterlösung anzeigen
Die Ursache liegt darin, dass die Erfolgsseite des Portals die Benutzeroberfläche dynamisch über JavaScript (AJAX/SPA-Routing) aktualisiert, anstatt eine vollständige HTTP-Seitennavigation durchzuführen. Der Captive Network Assistant (CNA) Mini-Browser von Apple iOS führt seinen Hintergrund-Verbindungstest (die Canary-Anfrage an captive.apple.com) nur dann erneut aus, wenn eine vollständige URL-Weiterleitung oder Seitennavigation stattfindet. Wenn der Entwickler das Anmeldeformular über AJAX übermittelt und lediglich eine "Erfolgreich"-Meldung im DOM anzeigt, bekommt der CNA nicht mit, dass das Netzwerk freigeschaltet wurde. Folglich bleibt die Schaltfläche oben rechts auf "Abbrechen" stehen. Wenn der Benutzer auf "Abbrechen" klickt, um das Fenster zu schließen, geht das Betriebssystem von einer fehlgeschlagenen Anmeldung aus und trennt die Verbindung zum WiFi-Netzwerk.
Lösung: Der Entwickler muss den Handler für die erfolgreiche Authentifizierung so anpassen, dass eine vollständige Weiterleitung erzwungen wird. Dies kann erreicht werden, indem das Anmeldeformular nativ über ein Standard-HTML <form action="/submit" method="POST"> übermittelt wird oder indem window.location.href = '/success_landing_page' in JavaScript ausgeführt wird, sobald die API eine erfolgreiche Authentifizierungsantwort zurückgibt. Dies löst das erforderliche Laden der vollständigen Seite aus, wodurch der CNA-Assistent gezwungen wird, den Netzwerkstatus neu zu bewerten, zu überprüfen, ob die Canary URL nun erreichbar ist, und die Schaltfläche oben rechts in "Fertig" zu ändern.
Q2. Ein Stadion-Betriebsteam [Events] möchte ein Gäste-WiFi-Netzwerk einrichten, das Marketing-Opt-ins erfasst. Der Compliance-Beauftragte besteht darauf, dass das Portal zu 100 % GDPR-konform sein muss. Das Entwicklerteam präsentiert einen Entwurf, bei dem das Anmeldeformular ein bereits angekreuztes Kontrollkästchen mit dem Text "Ich stimme den Nutzungsbedingungen zu und willige in den Erhalt von Marketing-Newslettern ein" enthält. Warum ist dieses Design nicht konform und wie sollten das HTML/CSS und die Formularstruktur überarbeitet werden, um die GDPR zu erfüllen und gleichzeitig eine hohe Konversionsrate beizubehalten?
Hinweis: Berücksichtigen Sie die strengen Anforderungen der GDPR bezüglich der ausdrücklichen Einwilligung, der Entkopplung von Marketing-Opt-ins von den Nutzungsbedingungen und der physischen Sichtbarkeit von Rechtstexten auf mobilen Bildschirmen.
Musterlösung anzeigen
Das vorgeschlagene Design verstößt in zwei wesentlichen Punkten gegen die GDPR: Erstens stellen vorausgewählte Kontrollkästchen keine wirksame Einwilligung dar, da diese freiwillig, für den konkreten Fall, in informierter Weise und unmissverständlich erfolgen muss. Zweitens ist die Koppelung der Marketing-Einwilligung an die Zustimmung zu den Nutzungsbedingungen nicht konform; ein Benutzer darf nicht gezwungen werden, Marketing-E-Mails als Bedingung für die Nutzung des WiFi-Dienstes zu akzeptieren.
Refactoring-Strategie:
- Einwilligung entkoppeln: Teilen Sie das Kontrollkästchen in zwei separate Kontrollkästchen auf. Kontrollkästchen A ist obligatorisch und deckt die Nutzungsbedingungen und die Datenschutzrichtlinie ab. Kontrollkästchen B ist optional und deckt die Anmeldung zum Marketing-Newsletter ab.
- Auf nicht ausgewählt setzen: Stellen Sie sicher, dass beide Kontrollkästchen im HTML standardmäßig nicht ausgewählt sind (das Attribut
checkedwird weggelassen). - Sichtbarkeit über CSS: Da sich über 90 % der Benutzer auf Mobilgeräten befinden, platzieren Sie die Kontrollkästchen direkt über der Schaltfläche 'Verbinden', sodass sie ohne Scrollen im sofort sichtbaren Bereich ('above the fold') sichtbar sind. Verwenden Sie einen System-Font-Stack und setzen Sie die Schriftgröße des Labels auf 14px mit einer Zeilenhöhe von 1.4 für optimale Lesbarkeit.
- Scrollbox für Nutzungsbedingungen: Um zu verhindern, dass der rechtliche Text die Formularelemente aus dem Bildschirm schiebt, platzieren Sie die detaillierten Nutzungsbedingungen in einem scrollbaren Container mit fester Höhe (
max-height: 100px; overflow-y: auto; background-color: #F5F1ED; border: 1px solid #D1D5DB; border-radius: 6px;), der über einen Textlink auf- und zugeklappt werden kann. Dies sorgt für ein sauberes Layout mit hoher Conversion-Rate bei gleichzeitiger absoluter Einhaltung aller rechtlichen Vorgaben.
Q3. Eine Einzelhandelskette [Retail](/industries/retail) stellt eine selbst programmierte Splash Page in 100 Filialen bereit. Der Designer hat Google Fonts (Montserrat) verwendet und im HTML-Head auf ein von einem CDN gehostetes Bootstrap-Stylesheet verlinkt. Beim Testen in einem Unternehmensnetzwerk wird die Seite wunderschön dargestellt. Bei der Bereitstellung auf einem Test-Store-AP mit einer Captive-Network-Konfiguration wird die Seite jedoch mit unformatiertem Times-New-Roman-Text, fehlerhafter Ausrichtung und fehlenden Symbolen angezeigt. Warum passiert das und wie müssen die Assets überarbeitet werden?
Hinweis: Analysieren Sie den Zustand der Netzwerkverbindung, bevor ein Benutzer authentifiziert wird, und bestimmen Sie, wie der Browser externe HTTP-Anfragen an Domains außerhalb des Walled Garden verarbeitet.
Musterlösung anzeigen
Dieser Fehler tritt auf, weil sich das Gerät beim Laden der Splash Page in einem unauthentifizierten, abgefangenen Zustand befindet. In diesem Zustand blockiert das Wireless Gateway den gesamten ausgehenden Internetverkehr und lässt nur Anfragen an Domains zu, die explizit im Walled Garden des Gateways freigegeben sind. Da die CDN-Domains für Bootstrap (cdn.jsdelivr.net) und Google Fonts (fonts.googleapis.com) nicht freigegeben sind, schlagen die Anfragen des Browsers zum Abrufen des Stylesheets und der Schriftdateien geräuschlos fehl. Infolgedessen greift der Browser auf seine Standard-Rendering-Engine zurück, was zu unformatiertem HTML (Times-New-Roman-Text) und fehlerhaften Layouts führt.
Refactoring-Strategie:
- Inline-CSS: Entfernen Sie den Link zum externen Bootstrap-Stylesheet. Kopieren Sie die erforderlichen CSS-Grid/Flexbox-Regeln direkt in einen
<style>-Block im HTML-<head>. Dadurch wird sichergestellt, dass alle Layout-Anweisungen in der initialen Single-Page-Payload übertragen werden. - System-Font-Stack implementieren: Entfernen Sie den Google Fonts
@import- oder<link>-Aufruf. Ersetzen Sie ihn durch einen nativen System-Font-Stack im CSS (font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;). Dies zwingt das Gerät dazu, hochwertige Schriftarten zu verwenden, die bereits auf dem Betriebssystem vorinstalliert sind, wodurch die externe Netzwerkabhängigkeit vollständig entfällt. - Base64-Codierung für Symbole/Logos: Wenn das Layout auf externe Bilder oder Symbolbibliotheken (wie FontAwesome) angewiesen ist, konvertieren Sie diese Symbole in das SVG-Format und binden Sie sie inline in das HTML oder als Base64-Data-URIs im CSS ein. Dies garantiert, dass die Seite zu 100 % in sich geschlossen ist und selbst bei völlig fehlender Internetverbindung perfekt gerendert wird.
Weiterlesen in dieser Reihe
Ubiquiti UniFi guest portal not redirecting: causes and fixes
Diese Anleitung isoliert einen Fehler bei der Weiterleitung des UniFi Guest Portals, indem sie den Status des Gastes, die Weiterleitung, die Route vor der Autorisierung und die Autorisierung des Controllers nacheinander durchläuft. Sie bietet IT-Teams an Standorten eine fundierte Methode zur Behebung von Konflikten zwischen Gastnetzwerken und Hotspots, Übergaben an externe Portale, aktuellen Anforderungen für UniFi OS-Konten und DNS-Isolationsprüfungen.
Cisco Meraki Splashpage funktioniert nicht: Ein Ablaufdiagramm zur Fehlerbehebung
Diese praktische Day-Two-Anleitung isoliert die genaue Stelle, an der ein Cisco Meraki Splash-Flow fehlgeschlagen ist: Client-Autorisierung, Initiierung der HTTP-Weiterleitung, Erreichbarkeit des Walled-Garden oder RADIUS-Anmeldung. Sie bietet IT-Teams vor Ort einen kontrollierten Nachweispfad, um das Guest WiFi wiederherzustellen, ohne tiefgreifende Änderungen an einer aktiven Infrastruktur vorzunehmen.
Enterprise Guest WiFi Einrichtungsleitfaden: VLAN-Segmentierung, Sicherheit und Captive Portals
Dieser technische Leitfaden zeigt IT-Teams, wie sie Guest WiFi als kontrollierten Internetzugangsdienst mithilfe von VLAN-Segmentierung, Firewall-Richtlinien und einem Captive Portal einrichten. Er erklärt außerdem, wie die Registrierungsformulare und Onboarding-Steuerelemente von Purple eine angemessene Benutzererfahrung für Besucher unterstützen, ohne die Grenzen um Mitarbeiter-, Zahlungs- und Betriebssysteme zu schwächen.
Haben Sie Fragen zu Ihrem spezifischen Setup?
Unser Team arbeitet mit Standortbetreibern, IT-Managern und Netzwerktechnikern an über 80.000 Standorten zusammen. Buchen Sie ein 20-minütiges Gespräch und wir zeigen Ihnen, wie andere diese Herausforderungen gelöst haben.