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.
Hinweis:
Diese API ist auf Top-Level-Kontexte beschränkt. Die Verwendung innerhalb eines <iframe>-Elements hat keine Wirkung.
Instanzeigenschaften
PublicKeyCredential.authenticatorAttachmentSchreibgeschü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()odernavigator.credentials.get()abgeschlossen wird. PublicKeyCredential.idSchreibgeschützt-
Von
Credentialgeerbt und so überschrieben, dass der Wert die Base64url-Kodierung vonPublicKeyCredential.rawIdist. PublicKeyCredential.rawIdSchreibgeschützt-
Ein
ArrayBuffer, der den global eindeutigen Bezeichner diesesPublicKeyCredentialenthält. Dieser Bezeichner kann verwendet werden, um Anmeldedaten für zukünftige Aufrufe vonnavigator.credentials.get()zu finden. PublicKeyCredential.responseSchreibgeschützt-
Eine Instanz eines
AuthenticatorResponse-Objekts. Sie ist vom TypAuthenticatorAttestationResponse, wenn dasPublicKeyCredentialdas Ergebnis eines Aufrufs vonnavigator.credentials.create()war, oder vom TypAuthenticatorAssertionResponse, wenn es das Ergebnis eines Aufrufs vonnavigator.credentials.get()war. PublicKeyCredential.typeSchreibgeschützt-
Von
Credentialgeerbt. BeiPublicKeyCredential-Instanzen immer aufpublic-keygesetzt.
Statische Methoden
PublicKeyCredential.getClientCapabilities()-
Gibt eine
Promisezurück, die mit einem Objekt erfüllt wird, mit dem sich prüfen lässt, ob bestimmte WebAuthn-Funktionen und Erweiterungen unterstützt werden. -
Gibt eine
Promisezurück, die mittrueerfüllt wird, wenn bedingte Vermittlung verfügbar ist. PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()-
Gibt eine
Promisezurück, die mittrueerfü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 vonJSON.stringify()aufgerufen.
Beispiele
>Eine neue Instanz von PublicKeyCredential erstellen
Hier verwenden wir navigator.credentials.create(), um neue Anmeldedaten zu erzeugen.
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.
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
- Die übergeordnete Schnittstelle
Credential