4️⃣ 2.2.5 - Erneute Authentifizierung
AAA 2.1
Umsetzung
Ziel
Sicherstellen, dass Benutzer nach Ablauf einer Sitzung nahtlos mit der Aktivität fortfahren können, ohne Daten oder Kontext zu verlieren.
Beschreibung
- Bei Ablauf einer authentifizierten Sitzung wird eine Möglichkeit zur erneuten Authentifizierung bereitgestellt.
- Nach der erneuten Authentifizierung werden alle eingegebenen Daten und der vorherige Kontext wiederhergestellt.
- Die Funktionalität muss unabhängig von der Sitzungsdauer barrierefrei nutzbar sein.
- Besonders wichtig für Benutzer, die mehr Zeit benötigen, um Aufgaben abzuschließen.
Anforderungen
- Speicherung aller Benutzereingaben während der Sitzung auf dem Server oder lokal im Browser (z. B. Session Storage).
- Nutzung sicherer Mechanismen, um sensible Benutzerdaten bei der erneuten Authentifizierung geschützt zu übertragen.
- Implementierung einer Sitzungswiederherstellung, die den ursprünglichen Kontext nach erfolgreicher Anmeldung lädt.
- Deutliche Erläuterung des Ablaufs bei einer erneuten Authentifizierung in den Hilfetexten.
- Formulierung klarer Anweisungen, was im Fall eines Sitzungstimeouts zu tun ist.
- Bereitstellung barrierefreier Sprache, um die Bedeutung der erneuten Authentifizierung hervorzuheben.
- Prüfung der Datenwiederherstellung nach erneuter Authentifizierung in verschiedenen Szenarien.
- Test der Sitzungswiederherstellung mit assistiven Technologien wie Screenreadern.
- Sicherstellung, dass kein Datenverlust bei zeitlich begrenzten Sitzungen auftritt.
Code-Beispiele
Automatische Speicherung und Wiederherstellung nach erneuter Authentifizierung:
// Speichern von Formulardaten vor Sitzungsabbruchdocument.getElementById('form').addEventListener('input', () => { const formData = new FormData(document.getElementById('form')); const dataObject = Object.fromEntries(formData.entries()); sessionStorage.setItem('formData', JSON.stringify(dataObject));});
// Wiederherstellen der Daten nach erneuter Authentifizierungwindow.addEventListener('load', () => { const savedData = JSON.parse(sessionStorage.getItem('formData')); if (savedData) { Object.keys(savedData).forEach(key => { const field = document.querySelector(`[name="${key}"]`); if (field) field.value = savedData[key]; }); }});