Określanie dostawcy klucza dostępu za pomocą identyfikatora AAGUID

Użytkownicy mogą sprawdzić, który dostawca kluczy dostępu utworzył klucz dostępu, analizując identyfikator AAGUID powiązanych poświadczeń klucza publicznego.

Problemy z zarządzaniem kluczami dostępu

Jedną z zalet korzystania z kluczy dostępu jest to, że użytkownicy mogą tworzyć wiele kluczy dostępu do jednego konta. Dzięki tej elastyczności i wytrzymałości kluczy dostępu nawet wtedy, gdy użytkownik utraci dostęp do konta z powodu utraty jednego z kluczy dostępu, może on nadal logować się na konto strony uwierzytelniającej, używając alternatywnych kluczy dostępu.

Użytkownicy, którzy zarządzają wieloma kluczami dostępu na RP, mają problem z określeniem właściwego klucza, gdy chcą go zmienić lub usunąć. Dobrym przykładem jest sytuacja, gdy użytkownik chce usunąć nieużywany klucz dostępu. Zalecamy, aby na liście kluczy dostępu dołączyć informacje o kluczu, takie jak data utworzenia i ostatniego użycia. Pomaga to użytkownikom znaleźć konkretny klucz dostępu.

RP mogą też zezwalać użytkownikom na nadawanie nazw kluczy dostępu zaraz po ich utworzeniu lub później, ale wielu użytkowników tego nie robi. W idealnej sytuacji nazwy kluczy dostępu są generowane automatycznie na podstawie sygnałów wysyłanych z poziomu klienta lub informacji zawartych w danych logowania z kluczem publicznym.

Przeglądarki udostępniają ciąg klienta użytkownika, którego mogą używać strony, ale platformy takie jak Android, iOS czy przeglądarki na komputery z możliwością rozszerzeń umożliwiają tworzenie kluczy dostępu przez menedżerów haseł innych firm, a ciąg klienta użytkownika niekoniecznie wskazuje, kto jest rzeczywistym dostawcą klucza dostępu.

Dzięki globalnemu unikatowemu identyfikatorowi uwierzytelniania uwierzytelniania (AAGUID) zawartemu w kluczu publicznym zwracanym podczas rejestracji klucza dostępu dostawcy usług rejestracji mogą określić dostawcę klucza dostępu i użyć go, aby użytkownicy mogli łatwo znaleźć odpowiedni klucz dostępu.

Określanie dostawcy klucza dostępu za pomocą identyfikatora AAGUID

AAGUID to unikalny numer identyfikujący model uwierzytelniania (nie konkretną instancję uwierzytelniania). Identyfikator AAGUID można znaleźć w danych uwierzytelniających danych logowania klucza publicznego.

Układ obiektu oświadczenia z załączonymi danymi uwierzytelniania (zawiera potwierdzone dane uwierzytelniające) i oświadczenie.
Identyfikator AAGUID można znaleźć w danych aplikacji uwierzytelniającej.

RP mogą używać AAGUID do identyfikowania dostawcy klucza dostępu. Jeśli na przykład użytkownik utworzy klucz dostępu na urządzeniu z Androidem za pomocą Menedżera haseł Google, RP otrzyma identyfikator AAGUID "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4". RP może dodać adnotację do klucza dostępu na liście kluczy dostępu, aby wskazać, że został on utworzony w Menedżerze haseł Google.

Ustawienia klucza dostępu na stronie ustawień zabezpieczeń zawierają szczegółowe informacje o każdym kluczu.
Interfejs zarządzania kluczami dostępu.

Aby zmapować identyfikator AAGUID na dostawcę kluczy dostępu, dostawcy kluczy dostępu mogą korzystać z repozytorium identyfikatorów AAGUID udostępnionego przez społeczność. Wyszukiwanie AAGUID na liście pozwala znaleźć nazwę dostawcy kluczy dostępu i tekst danych ikony SVG.

Pobieranie identyfikatora AAGUID jest funkcją, którą dysponują większość bibliotek WebAuthn. Poniższy przykład pokazuje kod rejestracji po stronie serwera, który korzysta z funkcji SimpleWebAuthn:

// Import a list of AAGUIDs from a JSON file
import aaguids from './aaguids.json' with { type: 'json' };

...

 // Use SimpleWebAuthn handy function to verify the registration request.
const { verified, registrationInfo } = await verifyRegistrationResponse({
  response: credential,
  expectedChallenge,
  expectedOrigin,
  expectedRPID,
  requireUserVerification: false,
});

...

const { aaguid } = registrationInfo;
const provider_name = aaguids[aaguid]?.name || 'Unknown';

Podsumowanie

AAGUID to unikalny ciąg znaków identyfikujący dostawcę klucza, który utworzył klucz dostępu. RP mogą używać identyfikatorów AAGUID, aby ułatwić użytkownikom zarządzanie kluczami dostępu. Repozytorium AAGUID udostępnione przez społeczność może służyć do mapowania AAGUID na dostawców kluczy dostępu.