PublicKeyCredentialRequestOptions

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2019.

* Some parts of this feature may have varying levels of support.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Das PublicKeyCredentialRequestOptions-Dictionary repräsentiert das Objekt, das an CredentialsContainer.get() als Wert der publicKey-Option übergeben wird.

Es wird verwendet, um ein PublicKeyCredential anzufordern, das von einem Authenticator bereitgestellt wird, der die Web Authentication API unterstützt.

Instanzeigenschaften

allowCredentials Optional

Ein Array von Objekten, das verwendet wird, um die Liste der akzeptablen Anmeldeinformationen einzuschränken. Ein leeres Array bedeutet, dass jede Anmeldeinformation akzeptiert wird.

Jedes Objekt im Array wird die folgenden Eigenschaften enthalten:

id

Ein ArrayBuffer, TypedArray oder DataView, das die ID des abzurufenden Public Key Credential repräsentiert. Dieser Wert spiegelt sich in der rawId-Eigenschaft des PublicKeyCredential-Objekts wider, das durch einen erfolgreichen get()-Aufruf zurückgegeben wird.

transports

Ein Array von Zeichenfolgen, das Hinweise darauf gibt, welche Methoden der Client verwenden könnte, um mit dem relevanten Authenticator des abzurufenden Public Key Credential zu kommunizieren. Mögliche Transports sind: "ble", "hybrid", "internal", "nfc" und "usb".

Hinweis: Dieser Wert wird durch den Rückgabewert der PublicKeyCredential.response.getTransports()-Methode des PublicKeyCredential-Objekts widergespiegelt, das durch den create()-Aufruf, der das Credential ursprünglich erstellt hat, zurückgegeben wird. Zu diesem Zeitpunkt sollte es von der App für die spätere Verwendung gespeichert werden.

type

Eine Zeichenfolge, die den Typ des abzurufenden Public Key Credential definiert. Derzeit kann dieser Wert nur "public-key" sein, aber in Zukunft können weitere Werte hinzugefügt werden. Dieser Wert spiegelt sich in der type-Eigenschaft des PublicKeyCredential-Objekts wider, das durch einen erfolgreichen get()-Aufruf zurückgegeben wird.

Der Standardwert ist ein leeres Array.

challenge

Ein ArrayBuffer, TypedArray oder DataView, das vom Server der vertrauenden Partei stammt und als kryptografische Herausforderung verwendet wird. Dieser Wert wird vom Authenticator signiert und die Signatur wird als Teil der AuthenticatorAssertionResponse.signature zurückgesendet (verfügbar in der response-Eigenschaft des PublicKeyCredential-Objekts, das durch einen erfolgreichen get()-Aufruf zurückgegeben wird).

extensions Optional

Ein Objekt, das Eigenschaften enthält, die die Eingabewerte für alle angeforderten Erweiterungen repräsentieren. Diese Erweiterungen werden verwendet, um eine spezifische zusätzliche Verarbeitung durch den Client oder Authenticator während des Authentifizierungsprozesses zu ermöglichen. Beispiele umfassen den Umgang mit Legacy-FIDO-API-Credentials und die Auswertung von Ausgaben einer mit einem Credential verbundenen Pseudozufallsfunktion (PRF).

Erweiterungen sind optional und verschiedene Browser können unterschiedliche Erweiterungen erkennen. Die Verarbeitung von Erweiterungen ist für den Client immer optional: Wenn ein Browser eine gegebene Erweiterung nicht erkennt, wird er sie einfach ignorieren. Weitere Informationen zur Verwendung von Erweiterungen und zu den von welchen Browsern unterstützten Erweiterungen finden Sie unter Web Authentication extensions.

hints Optional Experimentell

Ein Array von Zeichenfolgen, das Hinweise darauf gibt, welche Benutzeroberfläche der Browser bereitstellen sollte, damit der Benutzer sich mit einem vorhandenen Public Key Credential authentifizieren kann.

Die Zeichenfolgen können folgendermaßen lauten:

"security-key"

Die Benutzeroberfläche sollte empfehlen, das Credential von einem separaten physischen Sicherheitsschlüssel (wie einem YubiKey) anzufordern.

"client-device"

Die Benutzeroberfläche sollte empfehlen, das Credential von einem Authenticator anzufordern, der auf dem gleichen Gerät verfügbar ist, das sie verwenden, um auf den RP-Client zuzugreifen.

"hybrid"

Die Benutzeroberfläche sollte empfehlen, das Credential von einem Allzweck-Authenticator anzufordern, wie einer auf einem Smartphone basierenden Authenticator-App. Dies begünstigt die Verwendung eines geräteübergreifenden Ansatzes bei der Authentifizierung, wobei beispielsweise auf eine Kombination aus Laptop und Smartphone zurückgegriffen wird.

Wenn mehrere Zeichenfolgen im Array enthalten sind, gibt ihre Reihenfolge die Reihenfolge der Präferenz von hoch nach niedrig an. Unterstützende Browser, die die Hinweise respektieren, sollten den ersten verwenden, den sie verstehen.

Angegebene hints können im Widerspruch zu den in der transports-Option bereitgestellten Hinweisen stehen. Wenn die bereitgestellten hints dieser Option widersprechen, haben die hints Vorrang. hints können auch unter spezifischen Umständen vom Browser ignoriert werden, beispielsweise wenn ein vorgeschlagener Authenticator-Typ auf dem Gerät des Benutzers nicht verwendbar ist.

Für einige spezifische Code- und UI-Beispiele siehe Introducing hints, Related Origin Requests and JSON serialization for WebAuthn in Chrome.

rpId Optional

Eine Zeichenfolge, die den Bezeichner der vertrauenden Partei angibt (zum Beispiel "login.example.org"). Aus Sicherheitsgründen:

  • Die aufrufende Web-App überprüft, ob rpId mit dem Ursprung der vertrauenden Partei übereinstimmt.
  • Der Authenticator überprüft, ob rpId mit dem rpId des für die Authentifizierungszeremonie verwendeten Credentials übereinstimmt.

Dieser Wert hat standardmäßig die Domain des aktuellen Ursprungs.

timeout Optional

Ein numerischer Hinweis, in Millisekunden, der angibt, wie lange die vertrauende Partei bereit ist zu warten, bis der Abrufvorgang abgeschlossen ist. Dieser Hinweis kann vom Browser überschrieben werden.

userVerification Optional

Eine Zeichenfolge, die die Anforderungen der vertrauenden Partei für die Benutzerüberprüfung des Authentifizierungsprozesses angibt. Diese Überprüfung wird vom Authenticator initiiert, der den Benutzer auffordern wird, einen verfügbaren Faktor bereitzustellen (zum Beispiel eine PIN oder eine biometrische Eingabe irgendeiner Art).

Der Wert kann einer der folgenden sein:

"required"

Die vertrauende Partei verlangt eine Benutzerüberprüfung und der Vorgang schlägt fehl, wenn sie nicht erfolgt.

"preferred"

Die vertrauende Partei bevorzugt nach Möglichkeit eine Benutzerüberprüfung, aber der Vorgang schlägt nicht fehl, wenn sie nicht erfolgt.

"discouraged"

Die vertrauende Partei möchte keine Benutzerüberprüfung, um die Benutzerinteraktion so flüssig wie möglich zu gestalten.

Dieser Wert hat standardmäßig "preferred".

Spezifikationen

Specification
Web Authentication: An API for accessing Public Key Credentials - Level 3
# dictdef-publickeycredentialrequestoptions

Browser-Kompatibilität