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 öffentliches/privates Schlüsselpaar, das als Berechtigungsnachweis für die Anmeldung bei einem Dienst mittels eines nicht-phishbaren und datenpannenresistenten asymmetrischen Schlüsselpaares anstelle eines Passworts dient. Sie erbt von Credential
und ist Teil der Web Authentication API-Erweiterung für die Credential Management API.
Hinweis:
Diese API ist auf kontextübergreifende Nutzung beschränkt. Die Verwendung innerhalb eines <iframe>
-Elements hat keinen Effekt.
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()
odernavigator.credentials.get()
-Aufrufs am Authentifikator angehängt ist. PublicKeyCredential.id
Schreibgeschützt-
Von
Credential
geerbt und überschrieben, um die base64url Kodierung vonPublicKeyCredential.rawId
darzustellen. PublicKeyCredential.rawId
Schreibgeschützt-
Ein
ArrayBuffer
, der die global eindeutige Kennung für diesePublicKeyCredential
enthält. Diese Kennung kann verwendet werden, um Berechtigungsnachweise für zukünftige Aufrufe vonnavigator.credentials.get()
abzurufen. PublicKeyCredential.response
Schreibgeschützt-
Eine Instanz eines
AuthenticatorResponse
-Objekts. Es handelt sich entweder um einenAuthenticatorAttestationResponse
-Typ, wenn dasPublicKeyCredential
das Ergebnis einesnavigator.credentials.create()
-Aufrufs war, oder um einenAuthenticatorAssertionResponse
-Typ, wenn dasPublicKeyCredential
das Ergebnis einesnavigator.credentials.get()
-Aufrufs war. PublicKeyCredential.type
Schreibgeschützt-
Von
Credential
geerbt. FürPublicKeyCredential
-Instanzen immer aufpublic-key
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-Fähigkeiten und Erweiterungen unterstützt werden. -
Gibt ein
Promise
zurück, das zutrue
aufgelöst wird, wenn bedingte Vermittlung 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 servergesendeten Registrierungsdaten für Berechtigungsnachweise bei der Registrierung eines Benutzers mit Anmeldedaten.
PublicKeyCredential.parseRequestOptionsFromJSON()
-
Komfortmethode zur Deserialisierung von servergesendeten Anforderungsdaten für Berechtigungsnachweise bei der Authentifizierung eines (registrierten) Benutzers.
PublicKeyCredential.signalAllAcceptedCredentials()
Experimentell-
Meldet dem Authentifikator alle gültigen credential IDs, die der Relying Party-Server für einen bestimmten Benutzer weiterhin hält.
PublicKeyCredential.signalCurrentUserDetails()
Experimentell-
Meldet dem Authentifikator, dass ein bestimmter Benutzer seinen Benutzernamen und/oder Anzeigenamen aktualisiert hat.
PublicKeyCredential.signalUnknownCredential()
Experimentell-
Meldet dem Authentifikator, dass eine credential ID vom Relying Party-Server nicht erkannt wurde, beispielsweise weil sie gelöscht wurde.
Instanzmethoden
PublicKeyCredential.getClientExtensionResults()
-
Falls Erweiterungen angefordert wurden, gibt diese Methode die Ergebnisse der Verarbeitung dieser Erweiterungen zurück.
PublicKeyCredential.toJSON()
-
Komfortmethode zum Erstellen einer JSON-String-Repräsentation eines
PublicKeyCredential
zur Übermittlung 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 einen neuen Berechtigungsnachweis 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);
});
Abrufen einer vorhandenen Instanz von PublicKeyCredential
Hier holen wir einen vorhandenen Berechtigungsnachweis von einem Authentifikator, 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
Report problems with this compatibility data on GitHubLegend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- Partial support
- Partial support
- In development. Supported in a pre-release version.
- In development. Supported in a pre-release version.
- No support
- No support
- Experimental. Expect behavior to change in the future.
- See implementation notes.
- Has more compatibility info.
Siehe auch
- Die Elternschnittstelle
Credential