Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

PublicKeyCredential

Baseline
Weitgehend verfügbar
*

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2021 browserübergreifend verfügbar.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

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

Die Schnittstelle PublicKeyCredential stellt Informationen über ein öffentliches und privates Schlüsselpaar bereit. Dieses dient als Anmeldedaten für die Anmeldung bei einem Dienst und verwendet anstelle eines Passworts ein asymmetrisches Schlüsselpaar, das gegen Phishing und Datenlecks resistent ist. Die Schnittstelle erbt von Credential und ist Teil der Erweiterung der Credential Management API durch die Web Authentication API.

Credential PublicKeyCredential

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

Instanzeigenschaften

PublicKeyCredential.authenticatorAttachment Schreibgeschützt

Ein String, der angibt, auf welche Weise die WebAuthn-Implementierung mit dem Authenticator verbunden ist, wenn der zugehörige Aufruf von navigator.credentials.create() oder navigator.credentials.get() abgeschlossen wird.

PublicKeyCredential.id Schreibgeschützt

Von Credential geerbt und so überschrieben, dass der Wert die Base64url-Kodierung von PublicKeyCredential.rawId ist.

PublicKeyCredential.rawId Schreibgeschützt

Ein ArrayBuffer, der den global eindeutigen Bezeichner dieses PublicKeyCredential enthält. Dieser Bezeichner 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. Sie ist vom Typ AuthenticatorAttestationResponse, wenn das PublicKeyCredential das Ergebnis eines Aufrufs von navigator.credentials.create() war, oder vom Typ AuthenticatorAssertionResponse, wenn es das Ergebnis eines Aufrufs von navigator.credentials.get() war.

PublicKeyCredential.type Schreibgeschützt

Von Credential geerbt. Bei PublicKeyCredential-Instanzen immer auf public-key gesetzt.

Statische Methoden

PublicKeyCredential.getClientCapabilities()

Gibt eine Promise zurück, die mit einem Objekt erfüllt wird, mit dem sich prüfen lässt, ob bestimmte WebAuthn-Funktionen und Erweiterungen unterstützt werden.

PublicKeyCredential.isConditionalMediationAvailable()

Gibt eine Promise zurück, die mit true erfüllt wird, wenn bedingte Vermittlung verfügbar ist.

PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()

Gibt eine Promise zurück, die mit true erfüllt wird, wenn ein an die Plattform gebundener Authenticator den Benutzer verifizieren kann.

PublicKeyCredential.parseCreationOptionsFromJSON()

Hilfsmethode zum Deserialisieren der vom Server gesendeten Daten für die Registrierung von Anmeldedaten, wenn ein Benutzer mit Anmeldedaten registriert wird.

PublicKeyCredential.parseRequestOptionsFromJSON()

Hilfsmethode zum Deserialisieren der vom Server gesendeten Daten für die Anforderung von Anmeldedaten, wenn ein (registrierter) Benutzer authentifiziert wird.

PublicKeyCredential.signalAllAcceptedCredentials()

Übermittelt dem Authenticator alle gültigen Anmeldedaten-IDs, die der Server der Relying Party noch für einen bestimmten Benutzer gespeichert hat.

PublicKeyCredential.signalCurrentUserDetails()

Teilt dem Authenticator mit, dass ein bestimmter Benutzer seinen Benutzernamen und/oder Anzeigenamen aktualisiert hat.

PublicKeyCredential.signalUnknownCredential()

Teilt dem Authenticator mit, dass der Server der Relying Party eine Anmeldedaten-ID nicht erkannt hat, beispielsweise weil sie gelöscht wurde.

Instanzmethoden

PublicKeyCredential.getClientExtensionResults()

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

PublicKeyCredential.toJSON()

Gibt ein einfaches, JSON-serialisierbares Objekt zurück, das das PublicKeyCredential-Objekt repräsentiert. Wird automatisch von JSON.stringify() aufgerufen.

Beispiele

Eine neue Instanz von PublicKeyCredential erstellen

Hier verwenden wir navigator.credentials.create(), um neue Anmeldedaten 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);
  });

Eine vorhandene Instanz von PublicKeyCredential abrufen

Hier rufen wir mit navigator.credentials.get() vorhandene Anmeldedaten von einem Authenticator ab.

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

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

Browser-Kompatibilität

Siehe auch