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.
Das PublicKeyCredential
-Interface stellt Informationen über ein öffentliches/privates Schlüsselpaar bereit, das eine Anmeldedaten zur Anmeldung bei einem Dienst unter Verwendung eines nicht-phishbaren und datenschutzverletzungsresistenten asymmetrischen Schlüsselpaares anstelle eines Passworts darstellt. Es erbt von Credential
und ist Teil der Web Authentication API-Erweiterung zur 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 zu dem Zeitpunkt an den Authentifikator angeschlossen ist, wenn der zugehörige Aufruf von
navigator.credentials.create()
odernavigator.credentials.get()
abgeschlossen wird. PublicKeyCredential.id
Schreibgeschützt-
Geerbt von
Credential
und überschrieben, um die base64url-Codierung vonPublicKeyCredential.rawId
darzustellen. PublicKeyCredential.rawId
Schreibgeschützt-
Ein
ArrayBuffer
, der den global eindeutigen Bezeichner für diesesPublicKeyCredential
enthält. Dieser Bezeichner kann verwendet werden, um Anmeldedaten 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 eines Aufrufs vonnavigator.credentials.create()
war, oder vom TypAuthenticatorAssertionResponse
, wenn dasPublicKeyCredential
das Ergebnis eines Aufrufs vonnavigator.credentials.get()
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 bedingte Mediation verfügbar ist. PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
-
Gibt ein
Promise
zurück, das zutrue
aufgelöst wird, wenn ein an die Plattform gebundener Authentifikator in der Lage ist, den Benutzer zu verifizieren. PublicKeyCredential.parseCreationOptionsFromJSON()
-
Komfortmethode zur Deserialisierung von vom Server gesendeten Anmelderegistrierungsdaten beim Registrieren eines Benutzers mit Anmeldedaten.
PublicKeyCredential.parseRequestOptionsFromJSON()
-
Komfortmethode zur Deserialisierung von vom Server gesendeten Anmeldeanforderungsdaten beim Authentifizieren eines (registrierten) Benutzers.
PublicKeyCredential.signalAllAcceptedCredentials()
-
Signalisiert dem Authentifikator alle gültigen Anmelde-IDs, die der Relying Party-Server noch für einen bestimmten Benutzer hat.
PublicKeyCredential.signalCurrentUserDetails()
-
Signalisiert dem Authentifikator, dass ein bestimmter Benutzer seinen Benutzernamen und/oder Anzeigenamen aktualisiert hat.
PublicKeyCredential.signalUnknownCredential()
-
Signalisiert dem Authentifikator, dass eine Anmelde-ID vom Relying Party-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()
-
Komfortmethode zur Erstellung einer JSON-String-Darstellung eines
PublicKeyCredential
zur Übermittlung an den Server beim Registrieren eines Benutzers mit Anmeldedaten und Authentifizieren eines registrierten Benutzers.
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: "[email protected]",
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 existierende 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
- Das übergeordnete Interface
Credential