ESP32-Webserver mit Authentifizierung – Beispiel
ESP32 - Webserver mit Basis-Authentifizierung
Dieses Beispiel demonstriert, wie man einen sicheren Webserver mit HTTP-Basic-Authentifizierung auf dem ESP32 mithilfe der DIYables_ESP32_WebServer-Bibliothek erstellt.
Benötigte Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Gezeigte Funktionen
- ✅ HTTP-Basis-Authentifizierung
- ✅ Benutzername und Passwortschutz
- ✅ Browser-native Anmelde-Dialoge
- ✅ sichere Zugriffskontrolle
- ✅ einfache Authentifizierungseinrichtung
- ✅ Rückwärtskompatibilität (Authentifizierung optional)
Schaltplan
Für dieses Beispiel sind keine zusätzlichen Verdrahtungen erforderlich – es verwendet nur die integrierte LED- und WLAN-Funktionalität des ESP32.
Codebeispiel
Wie es funktioniert
1. Authentifizierung einrichten
Das Beispiel aktiviert die HTTP-Basic-Authentifizierung mit:
Bitte geben Sie den zu übersetzenden englischen Text ein.
server.enableAuthentication(www_username, www_password, "ESP32");
There is no content inside the code block to translate. Please provide the English text to translate inside the code block.
2. Automatischer Schutz
Sobald die Authentifizierung aktiviert ist, sind alle Routen automatisch geschützt. Benutzer müssen gültige Anmeldeinformationen angeben, um auf jede Seite zugreifen zu können.
3. Browser-Integration
Wenn Benutzer den Webserver besuchen:
- Der Browser zeigt einen Login-Dialog an
- Der Benutzer gibt Benutzernamen und Passwort ein
- Im Erfolgsfall: Die Seite lädt normal
- Im Fehlerfall wird eine Seite mit dem Status 401 angezeigt
4. Speicherung von Anmeldeinformationen
Der Browser speichert Anmeldeinformationen für die Sitzung, sodass Benutzer sich nicht erneut anmelden müssen.
Sicherheitsüberlegungen
✅ Geeignet für:
- Heimnetzwerke und vertrauenswürdige Umgebungen
- Interne IoT-Geräte
- Entwicklung und Prototyping
- Bildungsprojekte
⚠️ Einschränkungen:
- Zugangsdaten sind Base64-kodiert, nicht verschlüsselt
- Keine HTTPS-Unterstützung (ESP32-Plattformbeschränkung)
- Nur eine Benutzername/Passwort-Kombination
- Nicht geeignet für den Produktionseinsatz über öffentliche Netzwerke
🔒 Beste Praktiken:
- Ändern Sie sofort Ihre Standard-Anmeldeinformationen
- Nur in vertrauenswürdigen Netzwerken verwenden
- Zusätzliche Netzwerksicherheit in Betracht ziehen (VPN, Firewall)
- Für sicherheitskritische Anwendungen zusätzliche Authentifizierungsebenen hinzufügen
Die Authentifizierung testen
- Lade den Code auf deinen ESP32 hoch
- Öffne den Serial Monitor, um die IP-Adresse zu sehen
- Öffne die IP-Adresse in deinem Webbrowser
- Der Login-Dialog erscheint – gib Anmeldeinformationen ein:
- Benutzername: admin
- Passwort: esp32
- Bestätigungsseite lädt nach der Authentifizierung
Anpassungsoptionen
Zugangsdaten ändern
Bitte geben Sie den englischen Text zum Übersetzen ein.
const char* www_username = "myuser";
const char* www_passwort = "mysecretpass";
There is no English content provided to translate. Please paste the text you want translated.
Benutzerdefinierter Bereich
Es wurde kein Text zum Übersetzen bereitgestellt. Bitte fügen Sie den zu übersetzenden Text im Codeblock ein.
server.enableAuthentication(www_username, www_password, "Mein benutzerdefiniertes Gerät");
Bitte fügen Sie den zu übersetzenden Text ein.
Authentifizierung deaktivieren
Please provide the English content to translate (inside the code block).
server.disableAuthentication(); // Alle Routen öffentlich machen
Bitte geben Sie den englischen Text ein, der übersetzt werden soll.
Status der Authentifizierung prüfen
Please provide the English text to translate.
if (server.isAuthenticationEnabled()) {
Serial.println("Authentifizierung aktiv");
}
Bitte den zu übersetzenden englischen Text einfügen.
Rückwärtskompatibilität
Die Authentifizierung ist standardmäßig deaktiviert, sodass der vorhandene Code weiterhin ohne Änderungen funktioniert. Aktivieren Sie die Authentifizierung nur bei Bedarf:
Bitte den englischen Text zum Übersetzen bereitstellen.
// Das funktioniert genau wie zuvor (keine Authentifizierung)
DIYables_ESP32_WebServer server;
server.addRoute("/", handleRoot);
server.begin("WLAN", "Passwort");
// Fügen Sie diese Zeile hinzu, um die Authentifizierung zu aktivieren
server.authentifizierungAktivieren("admin", "password123");
Bitte den zu übersetzenden Text einfügen.
Fehlerbehebung
Browser fragt weiterhin nach Anmeldeinformationen
- Benutzername/Passwort auf Tippfehler überprüfen
- Browser-Cache und Cookies löschen
- Anmeldedaten exakt abgleichen
Kein Zugriff auf Seiten möglich
- Die Authentifizierung schützt ALLE Routen, wenn sie aktiviert ist
- Verwenden Sie server.disableAuthentication() zum Testen
- Überprüfen Sie die Serielle Ausgabe auf Authentifizierungsnachrichten
Authentifizierung funktioniert nicht
- Stellen Sie sicher, dass enableAuthentication() nach server.begin() aufgerufen wird.
- Stellen Sie sicher, dass die Anmeldeinformationen innerhalb der Längenlimits liegen (max. 31 Zeichen).
- Prüfen Sie, ob Passwörter Sonderzeichen enthalten.
Verwandte Beispiele
- Web Server Example - Basic multi-page web server
- Web Server with Query Strings - Dynamic content with parameters
- Web Server with WebSocket - Real-time communication
Referenzen
- Authentication Documentation - Complete authentication reference
- DIYables_ESP32_WebServer Library Reference - Full API documentation