Erfahren Sie, wie die WebAuthn Signal API das nahtlose Löschen von Passkeys und die Aktualisierung von Metadaten (user.name, user.displayName) auf clientseitigen Authenticatoren ermöglicht.
Vincent
Created: August 8, 2025
Updated: August 8, 2025
See the original blog version in English here.
Our mission is to make the Internet a safer place, and the new login standard passkeys provides a superior solution to achieve that. That's why we want to help you understand passkeys and its characteristics better.
Das Passkey-Ökosystem entwickelt sich ständig weiter. Um diesen Wandel zu ermöglichen, entwickelt sich auch der zugrunde liegende WebAuthn-Standard schnell. Neue Funktionen beginnen oft mit einem technischen Explainer auf GitHub und werden dann zu einem Pull-Request für den Standard, sobald sie ausreichend diskutiert wurden. Kürzlich wurde dieser Pull-Request als WebAuthn Signal API in den Standardentwurf aufgenommen. In diesem Artikel behandeln wir:
Zum Zeitpunkt der Aktualisierung dieses Blogbeitrags im Januar 2025 ist die WebAuthn Signal API seit Chrome 132 standardmäßig aktiviert. Sie war früher als Reporting API bekannt, bevor sie umbenannt wurde, um Konflikte mit einer anderen API gleichen Namens zu vermeiden.
Die WebAuthn Signal API deckt spezifische Anwendungsfälle im Zusammenhang mit der Verwaltung von Passkeys auf der Client-Seite ab. Insbesondere hilft sie dabei, Informationen zwischen der Relying Party (RP) und den Authenticatoren, die Teil der clientseitigen Betriebssysteme sind, synchron zu halten. Es gibt die folgenden wichtigen Anwendungsfälle:
Wenn ein Passkey erstellt wird, enthält er mehrere Informationen: user.id
, user.name
und user.displayName
. Der Passkey selbst wird über die eindeutige Credential ID identifiziert.
user.id
ist entscheidend, da sie für die tatsächliche Zuordnung des Passkeys zum Konto des Nutzers verwendet wird.Die folgende Abbildung zeigt eine typische, einfache Datenbankstruktur, die erklärt, welche Informationen üblicherweise in welchem Feld gespeichert werden:
Es ist wichtig zu verstehen, dass user.name
(oft eine E-Mail-Adresse) und user.displayName
(ein freundlicherer, lesbarer Name) dem Nutzer helfen, sein Konto in der Auswahl-Benutzeroberfläche zu identifizieren. Die eigentliche Verknüpfung zwischen einem Passkey und einem Konto wird jedoch über die user.id
und die Credential ID aufrechterhalten:
user.id
identifiziert und dem Konto zugeordnet.Ein Problem entsteht, wenn sich der user.name
, der eine E-Mail-Adresse sein kann, ändert. Derzeit gibt es keinen Mechanismus, um diese Änderung direkt auf dem clientseitigen Authenticator zu aktualisieren. Der user.name
kann sich aus verschiedenen Gründen ändern, beispielsweise wenn ein Nutzer seine E-Mail-Adresse aktualisiert. Trotz dieser Änderung der Konto-Metadaten auf der Serverseite wird der alte user.name
weiterhin in der Anmeldedaten-Auswahl-UI angezeigt, was bei Nutzern zu Verwirrung führen kann.
Die Umgehungslösung für dieses Problem besteht darin, einen neuen Passkey mit dem aktualisierten user.name
und der gleichen user.id
zu erstellen und dann den vorhandenen Passkey zu überschreiben. Dieser Ansatz ist jedoch aus mehreren Gründen unpraktisch:
user.id
kann nur einen Passkey pro Relying Party ID haben, was bedeutet, dass der alte Passkey durch einen neuen ersetzt werden muss, was ein zusätzlicher Schritt ist.E-Mail-Adressen, Telefonnummern und andere Kennungen können sich regelmäßig ändern. Ohne eine einfache Methode, user.name
und user.displayName
direkt auf dem Authenticator zu aktualisieren, könnten Nutzer auf das anhaltende Problem stoßen, einen Passkey auswählen zu müssen, der mit ihrer alten E-Mail-Adresse verknüpft ist. Diese Situation untergräbt die nahtlose Erfahrung, die Passkeys bieten sollen. Die WebAuthn Signal API zielt darauf ab, dieses Problem zu lösen, indem sie es Relying Parties ermöglicht, Aktualisierungen der Metadaten von Passkeys zu melden, ohne dass neue erstellt werden müssen. Bevor wir erklären, wie die Signal API implementiert wird, werden wir den zweiten wichtigen Anwendungsfall untersuchen, den sie abdeckt.
Ein weiterer wichtiger Anwendungsfall ist das Löschen von Passkeys auf dem clientseitigen Authenticator. Im Laufe der Zeit können Nutzer Anmeldedaten über die Passkey-Verwaltungsliste widerrufen oder ihre Konten löschen. Dann muss sichergestellt werden, dass diese Anmeldedaten vom clientseitigen Authenticator entfernt werden, um zu verhindern, dass sie in zukünftigen Auswahl-UIs für Anmeldedaten (Conditional UI / Passkey Autofill) erscheinen.
Die Notwendigkeit dieser Funktionalität ergibt sich in mehreren Szenarien:
Aus Nutzersicht ist es schwer verständlich, dass eine Löschung in den Kontoeinstellungen, in einem Dialog wie dem obigen, nicht dazu führt, dass der Passkey auch auf diesem Client entfernt wird.
Ohne eine direkte Methode zum Löschen von Passkeys auf der Client-Seite überladen diese veralteten oder ungültigen Anmeldedaten weiterhin die Auswahl-UI, was zu Verwirrung führt. Nutzer könnten Passkeys sehen und versuchen zu verwenden, die nicht mehr gültig sind, was zu fehlgeschlagenen Authentifizierungsversuchen und einer schlechten User Experience führt.
Die Implementierung der WebAuthn Signal API umfasst mehrere Schritte und Überlegungen, um sicherzustellen, dass die Funktionalität korrekt und sicher integriert wird. Die Signal API ermöglicht es Relying Parties (RPs), Passkey-Anmeldedaten auf dem clientseitigen Authenticator zu aktualisieren oder zu löschen. Dieser Abschnitt beschreibt die wichtigsten Überlegungen und Schritte für die Implementierung.
Bei der Implementierung der WebAuthn Signal API ist es entscheidend, die folgenden Überlegungen zu berücksichtigen:
Schutz der Privatsphäre: Die WebAuthn Signal API ist darauf ausgelegt, die Privatsphäre der Nutzer zu wahren, da dies eine der Grundlagen von WebAuthn ist. Das bedeutet, dass die RP kein Feedback darüber erhält, ob die angeforderte Änderung verarbeitet wurde. Die API arbeitet im Hintergrund, um jegliches potenzielle Durchsickern von Informationen über den Zustand der Anmeldedaten zu verhindern.
Verfügbarkeit des Authenticators: Die Wirksamkeit der WebAuthn Signal API hängt von der Verfügbarkeit des Authenticators ab. Dies umfasst sowohl die physische Verfügbarkeit (z. B. das Vorhandensein eines Security Keys) als auch die Softwareunterstützung (z. B. Browser- und Betriebssystemkompatibilität). Der Browser kann Aktionen nur ausführen, wenn der Authenticator zugänglich ist und die erforderlichen Operationen ohne biometrische Authentifizierung unterstützt.
Domain-Einschränkungen: Die API stellt sicher, dass nur die Relying Party, die mit einer bestimmten Domain verknüpft ist, Änderungen an Anmeldedaten im Zusammenhang mit dieser Domain anfordern kann. Dies ist eine Sicherheitsmaßnahme, um unbefugte Änderungen durch Dritte zu verhindern.
Credential ID als Schlüssel: Bei der Referenzierung von Passkeys ist die Credential ID der primäre Schlüssel, der von der WebAuthn Signal API verwendet wird. Diese ID identifiziert den Passkey eindeutig auf dem clientseitigen Authenticator. Die API ermöglicht es RPs, mit Passkeys verknüpfte Metadaten zu ändern oder zu signalisieren, dass auf bestimmte Passkeys nicht mehr zugegriffen werden soll, aber nur über die Credential ID. Falls ein Authenticator eine bestimmte Credential ID nicht kennt, wird er sie stillschweigend ignorieren.
Diese Überlegungen sind wesentlich, um die wichtigsten Aspekte der korrekten Funktionsweise der WebAuthn Signal API zu verstehen.
Die WebAuthn Signal API bietet einen optimierten Mechanismus für Relying Parties (RPs), um die mit Passkeys verbundenen Metadaten auf clientseitigen Authenticatoren zu aktualisieren. Dies ist besonders wichtig, um sicherzustellen, dass Nutzer genaue und aktuelle Informationen in der Auswahl-UI für Anmeldedaten sehen, ohne unnötig neue Passkeys erstellen zu müssen. So ermöglicht die API dies:
Metadaten aktualisieren mit signalCurrentUserDetails(options)
Die Methode signalCurrentUserDetails(options)
in der Signal API ist speziell für die Aktualisierung von Passkey-Metadaten konzipiert. Diese Methode ermöglicht es RPs, die aktuellen Werte für user.name
und user.displayName
bereitzustellen.
So funktioniert der Prozess (siehe auch den WebAuthn Level 3 Standard):
signalCurrentUserDetails(options)
enthält die rp.id
, user.id
und die aktualisierten Werte für user.name
und user.displayName
.PublicKeyCredential.signalCurrentUserDetails({ rpId: "example.com", userId: "aabbcc", // user handle, base64url. name: "New user name", displayName: "New display name", });
Aktualisierung der lokalen Metadaten: Suchen Sie nach lokal (auf dem Authenticator) verfügbaren Anmeldedaten, die mit der rpId
und userId
übereinstimmen. Für alle übereinstimmenden Anmeldedaten aktualisiert der Authenticator den name
und displayName
der Anmeldeinformation.
Schutz der Privatsphäre: Der Prozess ist so konzipiert, dass die Privatsphäre gewahrt bleibt. Die Signal API gibt der RP kein Feedback darüber, ob die Aktualisierungen erfolgreich verarbeitet wurden, um ein Durchsickern von Informationen über den Zustand der Anmeldedaten zu verhindern.
Konsistenz über Geräte hinweg: Durch regelmäßiges Ausführen der signalCurrentUserDetails(options)
-Methoden können RPs sicherstellen, dass die Metadaten für Passkeys auf verschiedenen Geräten und Plattformen, auf denen sich der Nutzer authentifizieren kann, konsistent bleiben. Dieser Ansatz verringert die Wahrscheinlichkeit, dass veraltete oder falsche Informationen in der Auswahl-UI für Anmeldedaten angezeigt werden.
Im obigen Screenshot sehen Sie, wie Google Chrome dem Nutzer eine solche Aktualisierung signalisiert. Die WebAuthn Signal API ist Teil von Chrome 130 und kann mit dem Google Password Manager auf dem Desktop getestet werden, wenn das Flag für experimentelle Webfunktionen aktiviert ist.
Die WebAuthn Signal API bietet Mechanismen für Relying Parties (RPs), um das Löschen von Passkeys von clientseitigen Authenticatoren zu signalisieren. Dies ist unerlässlich, um sicherzustellen, dass veraltete oder ungültige Anmeldedaten nicht in der Auswahl-UI für Anmeldedaten erscheinen und so eine optimierte und sichere User Experience gewährleistet wird. Es gibt zwei Methoden, um die Passkeys lokal zu löschen: signalUnknownCredential(options)
und signalAllAcceptedCredentials(options)
. Erstere kann in Situationen verwendet werden, in denen der Nutzer nicht authentifiziert ist, während letztere verwendet werden kann, wenn der Nutzer authentifiziert ist. Daher sollte letztere aus Datenschutzgründen bevorzugt werden.
So funktionieren die beiden Methoden:
signalUnknownCredential(options)
enthält die rpId
(Relying Party ID) und die credentialId
(die eindeutige Kennung der zu löschenden Anmeldeinformation).PublicKeyCredential.signalUnknownCredential({ rpId: "example.com", credentialId: "aabbcc", // credential id the user just tried, base64url });
Aufrufen der Methode: RPs rufen diese Methode auf, wann immer sie feststellen, dass eine Anmeldeinformation gelöscht werden sollte. Dies kann unmittelbar nach einem Authentifizierungsversuch mit einer ungültigen Anmeldeinformation, während der Kontolöschung oder wenn ein Nutzer eine Anmeldeinformation über die Kontoeinstellungen widerruft, geschehen.
Verarbeiten der Methode: Wenn die Methode signalUnknownCredential(options)
aufgerufen wird, versucht der clientseitige Authenticator, Anmeldedaten zu finden, die mit der angegebenen rpId
und credentialID
übereinstimmen, um sie auszulassen. Abhängig von den Fähigkeiten des Authenticators wird die Anmeldeinformation entfernt oder ein authenticator-spezifisches Verfahren angewendet, um die Anmeldeinformation in zukünftigen Authentifizierungszeremonien auszublenden.
signalAllAcceptedCredentials(options)
enthält die rpId
(Relying Party ID), die userId
und eine Liste gültiger Credential IDs allAcceptedCredentialIds
(Liste eindeutiger Kennungen von Anmeldedaten, die beibehalten werden sollen).PublicKeyCredential.signalAllAcceptedCredentials({ rpId: "example.com", userId: "aabbcc", // user handle, base64url. allAcceptedCredentialIds: ["bb"], });
Aufrufen der Methode: RPs rufen diese Methode auf, wann immer sie feststellen, dass eine Anmeldeinformation gelöscht werden sollte, und signalisieren eine Liste gültiger Anmeldedaten. Diese Methode sollte gegenüber signalUnknownCredential(options)
zum Löschen von Anmeldedaten bevorzugt werden.
Verarbeiten der Methode: Wenn die Methode signalAllAcceptedCredentials(options)
aufgerufen wird, gleicht der clientseitige Authenticator die rpId
und userId
ab. Der Authenticator sucht alle lokalen Anmeldedaten, die mit rpId
und userId
übereinstimmen. Das Ergebnis wird mit allAcceptedCredentialIds
verglichen. Wenn es lokale Anmeldedaten gibt, die nicht in allAcceptedCredentialIds
enthalten sind, werden diese Anmeldedaten lokal entfernt (oder je nach Authenticator ausgeblendet).
Anmeldedaten wieder einblenden: Wenn Anmeldedaten nur ausgeblendet wurden (abhängig vom Authenticator) und nun Teil von allAcceptedCredentialIds
sind, werden diese Anmeldedaten in zukünftigen Authentifizierungszeremonien wieder vorhanden sein.
Nützliche Tipps:
signalAllAcceptedCredentials(options)
ist es wichtig zu beachten, dass Authenticatoren möglicherweise nicht immer verbunden sind, wenn diese Methode ausgeführt wird. Daher könnten Relying Parties in Erwägung ziehen, signalAllAcceptedCredentials(options)
regelmäßig auszuführen, z. B. bei jeder Anmeldung, um sicherzustellen, dass alle Anmeldedaten auf dem neuesten Stand sind.allAcceptedCredentialIds
) angeben. Anmeldedaten, die nicht in dieser Liste enthalten sind, können vom Authenticator ausgeblendet oder entfernt werden, möglicherweise unwiderruflich. Um zu verhindern, dass gültige Anmeldedaten versehentlich ausgelassen werden, ist es entscheidend sicherzustellen, dass die Liste vollständig ist. Wenn eine gültige Credential ID versehentlich ausgelassen wird, sollte sie so schnell wie möglich wieder zu signalAllAcceptedCredentials(options)
hinzugefügt werden, um sie wieder sichtbar zu machen, vorausgesetzt, der Authenticator unterstützt dies.Im obigen Screenshot sehen Sie, wie Google Chrome Löschungen signalisiert. Die WebAuthn Signal API ist Teil von Chrome 132 und kann mit dem Google Password Manager auf dem Desktop getestet werden.
Um die WebAuthn Signal API effektiv zu implementieren und eine nahtlose Synchronisierung von Passkey-Metadaten über clientseitige Authenticatoren hinweg zu gewährleisten, sollten Sie die folgenden Empfehlungen berücksichtigen:
signalAllAcceptedCredentials(options)
-Ansatz nach jeder erfolgreichen Anmeldung: Dieser Ansatz stellt sicher, dass alle Metadaten und Credential IDs in einer einzigen Methode aktualisiert werden, was den Prozess vereinfacht und die Konsistenz über Geräte und Plattformen hinweg aufrechterhält und gleichzeitig gelöschte oder veraltete Anmeldedaten deaktiviert.signalUnknownCredential(options)
für groß angelegte Implementierungen: Erwägen Sie die Verwendung von Echtzeit-Benachrichtigungen mit der Methode signalUnknownCredential(options)
in groß angelegten Implementierungen oder wenn sofortige Aktualisierungen erforderlich sind. Diese Methode kann die Effizienz und Genauigkeit der Anmeldedatenverwaltung verbessern und sicherstellen, dass ungültige oder veraltete Anmeldedaten umgehend aus der Auswahl-UI entfernt werden.Indem Sie diese Empfehlungen befolgen, können Sie die WebAuthn Signal API effektiv implementieren, sobald sie unterstützt wird, und sicherstellen, dass die Passkey-Metadaten auf allen clientseitigen Authenticatoren aktuell und konsistent bleiben, was eine reibungslose und sichere User Experience für Passkeys bietet.
Der WebAuthn-Standard entwickelt sich kontinuierlich weiter und wird von Monat zu Monat funktionsreicher. Die Einführung der WebAuthn Signal API ist ein bedeutender Schritt vorwärts bei der Verwaltung von Passkey-Metadaten und Löschungen auf clientseitigen Authenticatoren. Diese API deckt die entscheidenden Anwendungsfälle ab, Informationen zwischen Relying Parties (RPs) und Authenticatoren synchron zu halten und sicherzustellen, dass ungültige oder veraltete Passkeys entfernt werden, wodurch die User Experience verbessert wird.
user.name
- und user.displayName
-Informationen, die zu Verwirrung führen können, wenn Anmeldedaten in der Auswahl-UI angezeigt werden. Zusätzlich hilft sie dabei, eine saubere und sichere Benutzeroberfläche für die Anmeldedatenauswahl aufrechtzuerhalten, indem sie widerrufene oder gelöschte Passkeys entfernt.Da sich der WebAuthn-Standard weiterentwickelt, profitiert er von den vielfältigen Interessen seiner Teilnehmer, die verschiedene Teile des Standards vorantreiben. Es ist entscheidend, diese Entwicklungen im Auge zu behalten, um über die neuesten Verbesserungen auf dem Laufenden zu bleiben und sicherzustellen, dass Implementierungen den neuesten Best Practices und Standards entsprechen. Die WebAuthn-Community treibt die Innovation weiter voran und macht die Authentifizierung sicherer und benutzerfreundlicher.
Enjoyed this read?
🤝 Join our Passkeys Community
Share passkeys implementation tips and get support to free the world from passwords.
🚀 Subscribe to Substack
Get the latest news, strategies, and insights about passkeys sent straight to your inbox.
Related Articles
Table of Contents