PublicKeyCredential

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.

Das PublicKeyCredential Interface stellt Informationen über ein öffentliches/privates Schlüsselpaar bereit, welches als Anmeldedaten für einen Dienst verwendet wird. Es nutzt ein nicht-phishbares und datenschutzverletzungsresistentes asymmetrisches Schlüsselpaar anstelle eines Passworts. Es erbt von Credential und ist Teil der Web Authentication API Erweiterung der Credential Management API.

Credential PublicKeyCredential

Hinweis: Diese API ist auf Top-Level-Kontexte beschränkt. Die Verwendung innerhalb eines <iframe> Elements hat keine Wirkung.

Instanz-Eigenschaften

PublicKeyCredential.authenticatorAttachment Schreibgeschützt

Ein String, der den Mechanismus angibt, wie die WebAuthn-Implementierung mit dem Authentifikator verbunden ist, zum Zeitpunkt des Abschlusses des zugehörigen Aufrufs von navigator.credentials.create() oder navigator.credentials.get().

PublicKeyCredential.id Schreibgeschützt

Übernommen von Credential und überschrieben, um die base64url Kodierung von PublicKeyCredential.rawId zu sein.

PublicKeyCredential.rawId Schreibgeschützt

Ein ArrayBuffer, der die weltweit eindeutige Kennung für dieses PublicKeyCredential enthält. Diese Kennung kann verwendet werden, um Anmeldedaten für zukünftige Aufrufe von navigator.credentials.get() zu finden.

PublicKeyCredential.response Schreibgeschützt

Eine Instanz eines AuthenticatorResponse Objekts. Es ist entweder vom Typ AuthenticatorAttestationResponse, wenn das PublicKeyCredential das Ergebnis eines navigator.credentials.create() Aufrufs war, oder vom Typ AuthenticatorAssertionResponse, wenn das PublicKeyCredential das Ergebnis eines navigator.credentials.get() Aufrufs war.

PublicKeyCredential.type Schreibgeschützt

Übernommen von Credential. Immer auf public-key für PublicKeyCredential Instanzen gesetzt.

Statische Methoden

PublicKeyCredential.isConditionalMediationAvailable()

Gibt ein Promise zurück, das sich auf true auflöst, wenn bedingte Mediation verfügbar ist.

PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()

Gibt ein Promise zurück, das sich auf true auflöst, wenn ein Authenticator, der an die Plattform gebunden ist, in der Lage ist, den Benutzer zu verifizieren.

PublicKeyCredential.parseCreationOptionsFromJSON()

Komfortmethode zum Deserialisieren von serverseitig gesendeten Anmeldedaten-Registrierungsdaten bei der Registrierung eines Benutzers mit Anmeldedaten.

PublicKeyCredential.parseRequestOptionsFromJSON()

Komfortmethode zum Deserialisieren von serverseitig gesendeten Anmeldedatenanforderungsdaten bei der Authentifizierung eines (registrierten) Benutzers.

Instanz-Methoden

PublicKeyCredential.getClientExtensionResults()

Wenn Erweiterungen angefordert wurden, gibt diese Methode die Ergebnisse der Verarbeitung dieser Erweiterungen zurück.

PublicKeyCredential.toJSON()

Komfortmethode zum Erstellen einer JSON-String-Darstellung eines PublicKeyCredential zur Übermittlung an den Server bei der Registrierung eines Benutzers mit Anmeldedaten und der Authentifizierung eines registrierten Benutzers.

Beispiele

Erstellen einer neuen Instanz von PublicKeyCredential

Hier verwenden wir navigator.credentials.create(), um ein neues Anmeldedaten-Objekt zu erzeugen.

js
const createCredentialOptions = {
  publicKey: {
    challenge: new Uint8Array([
      21, 31, 105 /* 29 more random bytes generated by the server */,
    ]),
    rp: {
      name: "Example CORP",
      id: "login.example.com",
    },
    user: {
      id: new Uint8Array(16),
      name: "canand@example.com",
      displayName: "Carina Anand",
    },
    pubKeyCredParams: [
      {
        type: "public-key",
        alg: -7,
      },
    ],
  },
};

navigator.credentials
  .create(createCredentialOptions)
  .then((newCredentialInfo) => {
    const response = newCredentialInfo.response;
    const clientExtensionsResults =
      newCredentialInfo.getClientExtensionResults();
  })
  .catch((err) => {
    console.error(err);
  });

Abrufen einer bestehenden Instanz von PublicKeyCredential

Hier rufen wir ein bestehendes Anmeldedaten-Objekt von einem Authentifikator ab, indem wir navigator.credentials.get() verwenden.

js
const requestCredentialOptions = {
  publicKey: {
    challenge: new Uint8Array([
      /* bytes sent from the server */
    ]),
  },
};

navigator.credentials
  .get(requestCredentialOptions)
  .then((credentialInfoAssertion) => {
    // send assertion response back to the server
    // to proceed with the control of the credential
  })
  .catch((err) => {
    console.error(err);
  });

Spezifikationen

Specification
Web Authentication: An API for accessing Public Key Credentials - Level 3
# iface-pkcredential

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch