Erstellen eines neuen Passkeys verhindern, falls bereits vorhanden

Um das Erstellen eines neuen Passkeys zu verhindern, wenn im selben Passkey bereits ein vorhanden ist Anbieter, verwenden Sie das optionale Attribut excludeCredentials des WebAuthn- PublicKeyCredentialCreationOptions -Wörterbuch.

Das Attribut excludeCredentials ist ein Array von Deskriptoren für öffentliche Schlüssel die für einen bestimmten Nutzer bereits vorhanden sind. Diese Informationen werden bereitgestellt von Server der vertrauenswürdigen Partei wenn verhindert werden soll, dass neue Anmeldedaten für einen vorhandenen Nutzer auf mit nur einem Authenticator.

Das Array excludeCredentials hat die folgenden Attribute:

  • type: Ein String, der den Typ der Anmeldedaten mit öffentlichem Schlüssel beschreibt, die verwendet werden sollen. generiert. Der Standardwert ist „public-key“.
  • id: Eine ArrayBuffer, die mit den vorhandenen Anmeldedaten eines öffentlichen Schlüssels übereinstimmt Kennung (PublicKeyCredential.rawId). Diese Kennung wird generiert während die Erstellung der PublicKeyCredential-Instanz.

Der Client gibt einen Fehler zurück, wenn der Nutzer versucht, ein neue Anmeldedaten auf einem Plattform-Authenticator, der bereits eine der die in diesem Parameter aufgeführten Anmeldedaten. Wenn der Authenticator bereits Public-Key-Anmeldedaten dieses Typs vorliegt, erfasst der Authenticator die Nutzereinwilligung Außerdem wird dem Nutzer eine Erfolgsanzeige angezeigt, ohne dass neue Anmeldedaten erstellt wurden. Eine Die Ausnahme InvalidStateError wird ausgelöst und weist darauf hin, dass der Nutzer bereits einen gültige Anmeldedaten abgeglichen von excludeCredentials.

"excludeCredentials": [
    {"id": "<id-1>", "type": "public-key"},
    {"id": "<id-2>", "type": "public-key"}
  ]

Diese JSON-Datei kann verwendet werden, um Authenticatoren mit einem der bereitgestellten Anmeldedaten mehrfach registriert. Jedes „<id-*>“ Wert sollte mit der ID des auszuschließenden Berechtigungsnachweises gefüllt.

Weitere Informationen zu excludeCredentials finden Sie im W3C. Empfehlung