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: "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 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
Loading…
Siehe auch
- Das übergeordnete Interface
Credential