AuthenticatorResponse: clientDataJSON-Eigenschaft

Baseline Widely available

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

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

Die clientDataJSON-Eigenschaft der AuthenticatorResponse-Schnittstelle speichert einen JSON-String in einem ArrayBuffer, der die Client-Daten darstellt, die an navigator.credentials.create() oder navigator.credentials.get() übergeben wurden. Diese Eigenschaft wird nur in einem der Kindobjekte von AuthenticatorResponse aufgerufen, insbesondere in AuthenticatorAttestationResponse oder AuthenticatorAssertionResponse.

Wert

Instanzeigenschaften

Nachdem das clientDataJSON-Objekt von einem ArrayBuffer in ein JavaScript-Objekt umgewandelt wurde, wird es die folgenden Eigenschaften haben:

challenge

Die base64url-kodierte Version der kryptografischen Herausforderung, die vom Server der vertrauenden Partei gesendet wurde. Der Originalwert wird als challenge-Option in CredentialsContainer.get() oder CredentialsContainer.create() übergeben.

crossOrigin Optional

Ein boolescher Wert. Wenn auf true gesetzt, bedeutet dies, dass der aufrufende Kontext ein <iframe> ist, das nicht denselben Ursprung wie seine übergeordneten Frames hat.

origin

Der vollständig qualifizierte Ursprung der vertrauenden Partei, der vom Client/Browser dem Authentifikator bereitgestellt wurde. Es sollte erwartet werden, dass die ID der vertrauenden Partei ein Suffix dieses Wertes ist.

tokenBinding Optional Veraltet

Ein Objekt, das den Status des Token-Binding-Protokolls für die Kommunikation mit der vertrauenden Partei beschreibt. Es hat zwei Eigenschaften:

  • status: Ein String, der entweder "supported" ist und anzeigt, dass der Client Token-Binding unterstützt, jedoch nicht mit der vertrauenden Partei verhandelt hat, oder "present", wenn Token-Binding bereits verwendet wurde.
  • id: Ein String, der die base64url-Kodierung der Token-Binding-ID ist, die für die Kommunikation verwendet wurde.

Sollte diese Eigenschaft fehlen, würde dies darauf hindeuten, dass der Client kein Token-Binding unterstützt.

Hinweis:>tokenBinding ist seit Level 3 der Spezifikation veraltet, aber das Feld ist reserviert, damit es nicht für einen anderen Zweck wiederverwendet wird.

topOrigin Optional

Enthält den vollständig qualifizierten Ursprungswert der obersten Ebene der vertrauenden Partei. Er wird nur gesetzt, wenn crossOrigin true ist.

type

Ein String, der entweder "webauthn.get" ist, wenn ein bestehendes Anmeldedaten abgerufen wird, oder "webauthn.create", wenn ein neues Anmeldedaten erstellt wird.

Beispiele

js
function arrayBufferToStr(buf) {
  return String.fromCharCode.apply(null, new Uint8Array(buf));
}

// pk is a PublicKeyCredential that is the result of a create() or get() Promise
const clientDataStr = arrayBufferToStr(pk.response.clientDataJSON);
const clientDataObj = JSON.parse(clientDataStr);

console.log(clientDataObj.type); // "webauthn.create" or "webauthn.get"
console.log(clientDataObj.challenge); // base64 encoded String containing the original challenge
console.log(clientDataObj.origin); // the window.origin

Spezifikationen

Specification
Web Authentication: An API for accessing Public Key Credentials - Level 3
# dom-authenticatorresponse-clientdatajson

Browser-Kompatibilität