Anfragen an /.well-known/change-password
an die URL „change-passwords“ weiterleiten
Richten Sie eine Weiterleitung von /.well-known/change-password
zur Seite zum Ändern des Passworts auf Ihrer Website ein. So können Passwortmanager Ihre Nutzer direkt auf diese Seite weiterleiten.
Einführung
Wie Sie vielleicht wissen, sind Passwörter nicht die beste Möglichkeit, Konten zu verwalten. Glücklicherweise gibt es neue Technologien wie WebAuthn und Verfahren wie Einmalpasswörter, die uns näher an eine Welt ohne Passwörter bringen. Diese Technologien befinden sich jedoch noch in der Entwicklungsphase und die Dinge werden sich nicht schnell ändern. Viele Entwickler werden noch mindestens in den nächsten Jahren mit Passwörtern konfrontiert werden müssen. Während wir darauf warten, dass die neuen Technologien und Verfahren zur Passwortsicherheit alltäglich werden, können wir Passwörter zumindest einfacher machen.
Dazu bietet es sich an, Passwortmanager besser zu unterstützen.
Vorteile von Passwortmanagern
Passwortmanager können in Browsern integriert oder als Drittanbieter-Apps bereitgestellt werden. Sie können Nutzern auf verschiedene Arten helfen:
Das Passwort für das richtige Eingabefeld automatisch ausfüllen lassen: Einige Browser können die richtige Eingabe heuristisch finden, auch wenn die Website nicht für diesen Zweck optimiert ist. Webentwickler können Passwortmanagern helfen, indem sie HTML-Eingabe-Tags richtig annotieren.
Phishing verhindern: Da Passwortmanager speichern, wo das Passwort erfasst wurde, kann es nur bei passenden URLs automatisch ausgefüllt werden, nicht auf Phishing-Websites.
Starke und eindeutige Passwörter generieren: Da starke und eindeutige Passwörter direkt vom Passwortmanager generiert und gespeichert werden, müssen sich Nutzer kein einziges Zeichen des Passworts merken.
Das Generieren und automatischen Ausfüllen von Passwörtern mithilfe eines Passwortmanagers hat sich im Web bereits bewährt. Angesichts ihres Lebenszyklus ist es jedoch genauso wichtig, Passwörter bei Bedarf zu aktualisieren wie das Generieren und das automatische Ausfüllen. Um diese Funktion optimal zu nutzen, fügen Passwortmanager eine neue Funktion hinzu:
Anfällige Passwörter erkennen und deren Aktualisierung vorschlagen: Passwortmanager können Passwörter erkennen, die wiederverwendet werden, ihre Entropie und Schwachstellen analysieren und sogar potenziell gehackte Passwörter oder solche, die aus Quellen wie Have I Been Pwned als unsicher bekannt sind, erkennen.
Ein Passwortmanager kann Nutzer vor problematischen Passwörtern warnen, aber es ist sehr mühsam, Nutzer dazu zu bringen, von der Startseite zu einer Seite zum Ändern des Passworts zu wechseln und dann noch das Passwort selbst zu ändern (was von Website zu Website variiert). Es wäre viel einfacher, wenn Passwortmanager Nutzer direkt zur URL für die Passwortänderung weiterleiten könnten. Hier kommt eine bekannte URL zum Ändern von Passwörtern ins Spiel.
Wenn Sie einen bekannten URL-Pfad reservieren, über den Nutzer zur Seite zum Ändern des Passworts weitergeleitet werden, können Nutzer ganz einfach zur richtigen Stelle weitergeleitet werden, um ihr Passwort zu ändern.
„Eine bekannte URL zum Ändern von Passwörtern“ einrichten
.well-known/change-password
wird als bekannte URL zum Ändern von Passwörtern vorgeschlagen. Sie müssen lediglich Ihren Server so konfigurieren, dass Anfragen für .well-known/change-password
an die URL zur Passwortänderung Ihrer Website weitergeleitet werden.
Ein Beispiel: Ihre Website lautet https://example.com
und die URL zur Passwortänderung https://example.com/settings/password
. Sie müssen lediglich Ihren Server so konfigurieren, dass eine Anfrage für https://example.com/.well-known/change-password
an https://example.com/settings/password
weitergeleitet wird. Das war's. Verwenden Sie für die Weiterleitung den HTTP-Statuscode
302 Found
, 303 See
Other
oder 307
Temporary Redirect
.
Alternativ kannst du HTML mit einem <meta>
-Tag über deine .well-known/change-password
-URL mit einem http-equiv="refresh"
bereitstellen.
<meta http-equiv="refresh" content="0;url=https://example.com/settings/password">
HTML-Code der Seite zum Ändern des Passworts aufrufen
Ziel dieser Funktion ist es, den Passwortzyklus des Nutzers flüssiger zu gestalten. Es gibt zwei Möglichkeiten, um dem Nutzer die Möglichkeit zu geben, sein Passwort reibungslos zu aktualisieren:
- Wenn für Ihr Passwortänderungsformular das aktuelle Passwort erforderlich ist, fügen Sie dem
<input>
-Tagautocomplete="current-password"
hinzu, damit der Passwortmanager es automatisch ausfüllen kann. - Fügen Sie dem
<input>
-Tag für das Feld „Neues Passwort“ (in vielen Fällen sind es zwei Felder, um sicherzustellen, dass der Nutzer das neue Passwort korrekt eingegeben hat) das Attributautocomplete="new-password"
hinzu, damit der Passwortmanager ein generiertes Passwort vorschlagen kann.
Weitere Informationen zu Best Practices für Anmeldeformulare
Anwendung in der Praxis
Beispiele
Dank der Implementierung in Apple Safari ist /.well-known/change-password
schon seit einiger Zeit auf einigen großen Websites verfügbar:
Probieren Sie sie selbst aus und machen Sie es auch mit Ihren eigenen.
Browserkompatibilität
Eine bekannte URL zum Ändern von Passwörtern wird seit 2019 in Safari unterstützt. Der Passwortmanager von Chrome unterstützt diese Funktion ab Version 86 (die für Ende Oktober 2020 für die stabile Version geplant ist). Weitere Chromium-basierte Browser können folgen. Firefox hält die Implementierung für sinnvoll, hat aber bis August 2020 nicht signalisiert, dass dies geplant ist.
Verhalten des Passwortmanagers in Chrome
Sehen wir uns an, wie der Passwortmanager von Chrome mit unsicheren Passwörtern umgeht.
Der Passwortmanager von Chrome kann nach gehackten Passwörtern suchen. Unter about://settings/passwords
können Nutzer die Funktion Passwörter prüfen auf gespeicherte Passwörter anwenden und eine Liste der Passwörter aufrufen, die aktualisiert werden sollten.
Wenn Sie neben einem Passwort, das aktualisiert werden sollte, auf die Schaltfläche Passwort ändern klicken, führt der Browser folgende Schritte aus:
- Öffnen Sie die Seite zum Ändern des Passworts auf der Website, wenn
/.well-known/change-password
richtig eingerichtet ist. - Öffnen Sie die Startseite der Website, wenn
/.well-known/change-password
nicht eingerichtet ist und Google den Fallback nicht kennt.
200 OK
zurückgibt, obwohl /.well-known/change-password
nicht existiert?Passwortmanager versuchen festzustellen, ob eine Website eine bekannte URL zum Ändern von Passwörtern unterstützt. Dazu senden sie eine Anfrage an /.well-known/change-password
, bevor ein Nutzer tatsächlich an diese URL weitergeleitet wird. Wenn die Anfrage 404 Not Found
zurückgibt, ist die URL offensichtlich nicht verfügbar. Eine Antwort mit 200 OK
bedeutet jedoch nicht unbedingt, dass die URL verfügbar ist, da es einige Grenzfälle gibt:
- Auf einer website mit serverseitigem Rendering wird „Nicht gefunden“ angezeigt, wenn keine Inhalte vorhanden sind, aber mit
200 OK
. - Eine serverseitige Website antwortet mit
200 OK
, wenn nach der Weiterleitung zur Seite „Nicht gefunden“ keine Inhalte vorhanden sind. - Eine Single-Page-App antwortet mit der Shell mit
200 OK
und rendert die Seite „Nicht gefunden“ auf der Clientseite, wenn kein Inhalt vorhanden ist.
In solchen Grenzfällen werden Nutzer zu einer Seite mit dem Status „Nicht gefunden“ weitergeleitet, was zu Verwirrung führen kann.
Deshalb gibt es einen vorgeschlagenen Standardmechanismus, mit dem ermittelt wird, ob der Server so konfiguriert ist, dass er mit 404 Not Found
antwortet, wenn tatsächlich keine Inhalte vorhanden sind. Dazu wird eine zufällige Seite angefordert. Die URL ist ebenfalls reserviert: /.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200
.
Chrome verwendet diesen URL-Pfad beispielsweise, um im Voraus zu ermitteln, ob von /.well-known/change-password
eine gültige URL zum Ändern des Passworts erwartet werden kann.
Achten Sie beim Bereitstellen von /.well-known/change-password
darauf, dass Ihr Server 404 Not Found
für nicht vorhandene Inhalte zurückgibt.
Feedback
Wenn Sie Feedback zur Spezifikation haben, reichen Sie bitte ein Problem im Repository der Spezifikation ein.
Ressourcen
- Bekannte URL zum Ändern von Passwörtern
- Verlässlichkeit von HTTP-Statuscodes erkennen
- Best Practices für Anmeldeformulare
Foto von Matthew Brodeur auf Unsplash