Einfachere WebAuthn-Funktionserkennung

Veröffentlicht am 15. Januar 2025, zuletzt aktualisiert am 9. April 2026

WebAuthn bietet einzigartige Funktionen wie die Interaktion mit Bluetooth für das Hybridprotokoll, die Kommunikation mit Passkey-Anbietern und das Vorschlagen von Passkeys in der Autofill-Funktion. Allerdings bieten verschiedene Clients und Authentifikatoren unterschiedliche Unterstützung für WebAuthn-Funktionen. Diese Unterschiede können zu einer fragmentierten Nutzererfahrung führen, bei der einige Nutzer möglicherweise auf Fehler stoßen oder bestimmte Authentifizierungsoptionen nicht nutzen können. Wenn Entwickler die Clientfunktionen ermitteln können, können sie robustere Authentifizierungsabläufe erstellen, die sich an diese Unterschiede anpassen.

Mit der Methode PublicKeyCredential.getClientCapabilities() können vertrauende Seiten ermitteln, welche WebAuthn-Funktionen vom Browser unterstützt werden. Die Methode gibt ein Promise zurück, das in einer Liste der unterstützten Funktionen aufgelöst wird. So können Entwickler Authentifizierungserlebnisse und -abläufe an die spezifischen Funktionen des Clients anpassen.

Kompatibilität

Browser Support

  • Chrome: 133.
  • Edge: 133.
  • Firefox: 135.
  • Safari: 17.4.

Source

getClientCapabilities()

Die getClientCapabilities() ist eine WebAuthn API, mit der vertrauende Seiten ermitteln können, welche Funktionen verfügbar sind. Um die API zu verwenden, müssen Sie PublicKeyCredential.getClientCapabilities() aufrufen. Das zurückgegebene Promise wird in ein Objekt aufgelöst, das Funktionen enthält, wobei die Verfügbarkeit jeweils mit true oder false angegeben wird. Wenn die Funktion undefined ist, ist die Verfügbarkeit nicht bekannt.

if (window.PublicKeyCredential && PublicKeyCredential.getClientCapabilities) {
  const capabilities = await PublicKeyCredential.getClientCapabilities();
  if (capabilities.conditionalGet === true &&
      capabilities.passkeyPlatformAuthenticator === true) {
    // The browser supports passkeys and the conditional mediation.
  }
}

conditionalCreate

Der Browser kann Anmeldedaten ohne auffällige modale UI erstellen, wenn der Nutzer bereits zugestimmt hat.

conditionalGet

Der Browser kann sich authentifizieren, indem er Passkeys als Teil des Autofill-Dialogfelds anzeigt, anstatt eine auffällige modale UI zu verwenden. Die entsprechende vorhandene Funktion ist PublicKeyCredential.isConditionalMediationAvailable().

hybridTransport

Das Gerät kann Bluetooth verwenden, damit der Browser Anmeldedaten erstellen und sich geräteübergreifend damit authentifizieren kann. In der Regel bedeutet das, dass der Browser einen QR‑Code anzeigen kann, den der Nutzer scannen und sich mit einem Smartphone anmelden kann, auf dem Anmeldedaten gespeichert sind.

passkeyPlatformAuthenticator

Der Browser kann Anmeldedaten erstellen und sich damit über einen Plattformauthentifikator authentifizieren, der die Nutzeridentität bestätigt, oder über ein anderes Gerät, das dies über das Hybridprotokoll unterstützt. Entspricht hybridTransport || userVerifyingPlatformAuthenticator.

relatedOrigins

Der Browser kann Anmeldedaten erstellen und sich damit authentifizieren, die nicht mit der RP-ID übereinstimmen, sofern sie in der Datei mit den zugehörigen Ursprüngen angegeben sind.

signalAllAcceptedCredentials

Der Browser kann verfügbare Anmeldedaten auf dem Server an den Passkey Anbieter senden, damit der Passkey-Anbieter die Passkey-Liste mit dem Server synchronisieren kann.

signalCurrentUserDetails

Der Browser kann Nutzerinformationen wie Nutzername und Anzeigename auf dem Server an den Passkey- Anbieter senden, damit der Passkey-Anbieter seine Passkey-Informationen mit dem Server synchronisieren kann.

signalUnknownCredential

Der Browser kann gelöschte Anmeldedaten auf dem Server an den Passkey Anbieter, senden, damit der Passkey-Anbieter die Passkey-Liste mit dem Server synchronisieren kann.

userVerifyingPlatformAuthenticator

Der Browser kann Anmeldedaten auf einem Plattformauthentifikator erstellen und sich damit authentifizieren. Das bedeutet nicht, dass der Browser das Hybridprotokoll unterstützt. Die entsprechende vorhandene Funktion ist PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable().

extensions

Vertrauende Seiten können verfügbare Erweiterungen auch mit getClientCapabilities() ermitteln.

if (capabilities['extension:appid'] === true) {
  // appId extension is supported
}

Die Kennung hat das Präfix extension: gefolgt von einem Erweiterungsnamen. Erweiterungsnamen finden Sie unter the WebAuthn Extension Identifiers defined at IANA, die bei der IANA definiert sind.

Weitere Informationen

Weitere Informationen zu Passkeys finden Sie unter Anmeldung ohne Passwort mit Passkeys.