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.
* 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.
Die PublicKeyCredential
Schnittstelle bietet Informationen über ein Paar aus öffentlichem Schlüssel und privatem Schlüssel, welches ein Anmelde-Datenpaar für die Anmeldung bei einem Dienst mit einem manipulationssicheren und datenschutzverletzungsresistenten asymmetrischen Schlüsselpaar statt eines Passworts darstellt. Sie erbt von Credential
und ist Teil der Web Authentication API-Erweiterung für die Credential Management API.
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 Aufrufs von
navigator.credentials.create()
odernavigator.credentials.get()
mit dem Authentifikator verbunden ist. PublicKeyCredential.id
Schreibgeschützt-
Geerbt von
Credential
und überschrieben, um die base64url-Kodierung vonPublicKeyCredential.rawId
zu sein. PublicKeyCredential.rawId
Schreibgeschützt-
Ein
ArrayBuffer
, der den global eindeutigen Identifikator für diesesPublicKeyCredential
enthält. Dieser Identifikator kann verwendet werden, um Anmeldeinformationen für zukünftige Aufrufe vonnavigator.credentials.get()
nachzuschlagen. PublicKeyCredential.response
Schreibgeschützt-
Eine Instanz eines
AuthenticatorResponse
-Objekts. Es ist entweder vom TypAuthenticatorAttestationResponse
, wenn dasPublicKeyCredential
das Ergebnis einesnavigator.credentials.create()
-Aufrufs war, oder vom TypAuthenticatorAssertionResponse
, wenn dasPublicKeyCredential
das Ergebnis einesnavigator.credentials.get()
-Aufrufs war. PublicKeyCredential.type
Schreibgeschützt-
Geerbt von
Credential
. Immer aufpublic-key
fürPublicKeyCredential
-Instanzen gesetzt.
Statische Methoden
PublicKeyCredential.getClientCapabilities()
-
Gibt ein
Promise
zurück, das mit einem Objekt aufgelöst wird, das verwendet werden kann, um zu überprüfen, ob bestimmte WebAuthn-Funktionen und Erweiterungen unterstützt werden. -
Gibt ein
Promise
zurück, das zutrue
aufgelöst wird, wenn eine bedingte Vermittlung verfügbar ist. PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
-
Gibt ein
Promise
zurück, das zutrue
aufgelöst wird, wenn ein Authentifikator, der an die Plattform gebunden ist, in der Lage ist, den Benutzer zu verifizieren. PublicKeyCredential.parseCreationOptionsFromJSON()
-
Praktische Methode zur Deserialisierung von servergesendeten Anmeldedaten beim Registrieren eines Benutzers mit Anmeldedaten.
PublicKeyCredential.parseRequestOptionsFromJSON()
-
Praktische Methode zur Deserialisierung von servergesendeten Anfragedaten, wenn ein (registrierter) Benutzer authentifiziert wird.
PublicKeyCredential.signalAllAcceptedCredentials()
-
Gibt dem Authentifikator alle gültigen Anmeldeinformationen-IDs bekannt, die der Anbieter Server immer noch für einen bestimmten Benutzer bereithält.
PublicKeyCredential.signalCurrentUserDetails()
-
Gibt dem Authentifikator bekannt, dass ein bestimmter Benutzer seinen Benutzernamen und/oder seinen Anzeigenamen aktualisiert hat.
PublicKeyCredential.signalUnknownCredential()
-
Gibt dem Authentifikator bekannt, dass eine Anmeldeinformationen-ID durch den Anbieter-Server nicht erkannt wurde, zum Beispiel, 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, wenn ein Benutzer mit Anmeldedaten registriert und ein registrierter Benutzer authentifiziert wird.
Beispiele
Erstellen einer neuen Instanz von PublicKeyCredential
Hier verwenden wir navigator.credentials.create()
, um eine neue Anmeldeinformation zu generieren.
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 holen wir eine bestehende Anmeldeinformation von einem Authentifikator ab, indem wir navigator.credentials.get()
verwenden.
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
Siehe auch
- Die übergeordnete Schnittstelle
Credential