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 PublicKeyCredential-Schnittstelle liefert Informationen über ein Paar aus öffentlichem und privatem Schlüssel, welches eine Anmeldeinformation für den Login bei einem Service bietet, indem es ein nicht-phishing-fähiges und datenpannenresistentes asymmetrisches Schlüsselpaar anstelle eines Passworts verwendet. Sie 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, mit dem die WebAuthn-Implementierung zum Zeitpunkt des Abschlusses des zugehörigen navigator.credentials.create()- oder navigator.credentials.get()-Aufrufs mit dem Authenticator verbunden ist.

PublicKeyCredential.id Schreibgeschützt

Von Credential geerbt 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 zum Nachschlagen von Anmeldeinformationen für zukünftige Aufrufe von navigator.credentials.get() verwendet werden.

PublicKeyCredential.response Schreibgeschützt

Eine Instanz eines AuthenticatorResponse-Objekts. Sie 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

Von Credential geerbt. Immer auf public-key für PublicKeyCredential-Instanzen gesetzt.

Statische Methoden

PublicKeyCredential.getClientCapabilities()

Gibt ein Promise zurück, das mit einem Objekt aufgelöst wird, das verwendet werden kann, um zu prüfen, ob bestimmte WebAuthn-Fähigkeiten und Erweiterungen unterstützt werden.

PublicKeyCredential.isConditionalMediationAvailable()

Gibt ein Promise zurück, das zu true aufgelöst wird, wenn bedingte Vermittlung verfügbar ist.

PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()

Gibt ein Promise zurück, das zu true aufgelöst wird, wenn ein an die Plattform gebundener Authenticator in der Lage ist, den Benutzer zu verifizieren.

PublicKeyCredential.parseCreationOptionsFromJSON()

Praktische Methode zur Deserialisierung von servergesendeten Anmeldedaten bei der Registrierung eines Benutzers mit Anmeldedaten.

PublicKeyCredential.parseRequestOptionsFromJSON()

Praktische Methode zur Deserialisierung von servergesendeten Anforderungsdaten beim Authentifizieren eines (registrierten) Benutzers.

PublicKeyCredential.signalAllAcceptedCredentials()

Signalisiert dem Authenticator alle gültigen Credential-IDs, die der Vertrauensstelle-Server noch für einen bestimmten Benutzer hält.

PublicKeyCredential.signalCurrentUserDetails()

Signalisiert dem Authenticator, dass ein bestimmter Benutzer seine Benutzernamen und/oder Anzeigenamen aktualisiert hat.

PublicKeyCredential.signalUnknownCredential()

Signalisiert dem Authenticator, dass eine Credential-ID vom Vertrauensstelle-Server nicht erkannt wurde, beispielsweise weil sie gelöscht wurde.

Instanz-Methoden

PublicKeyCredential.getClientExtensionResults()

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

PublicKeyCredential.toJSON()

Praktische Methode zur Erstellung einer JSON-String-Darstellung eines PublicKeyCredential zum Senden an den Server bei der Registrierung eines Benutzers mit Anmeldedaten und Authentifizierung eines registrierten Benutzers.

Beispiele

Erstellen einer neuen Instanz von PublicKeyCredential

Hier verwenden wir navigator.credentials.create(), um ein neues Anmeldedatum zu generieren.

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 vorhandenen Instanz von PublicKeyCredential

Hier holen wir ein vorhandenes Anmeldedatum von einem Authenticator 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

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

Browser-Kompatibilität

Siehe auch