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

Podmioty uzależnione (RP) mogą określić, który dostawca klucza dostępu jest tworzony przez sprawdzenie identyfikatora AAGUID powiązanych danych uwierzytelniających klucza publicznego.

Wyzwania związane z zarządzaniem kluczami dostępu

Jedną z zalet korzystania z kluczy jest możliwość utworzenia wielu kluczy na jednym koncie. Ta elastyczność i niezawodność klucza dostępu pozwalają na logowanie się przy użyciu alternatywnych kluczy, nawet jeśli użytkownik utraci dostęp do konta z powodu utraty jednego z kluczy dostępu.

Dla użytkowników, którzy zarządzają wieloma kluczami dostępu w grupie objętej ograniczeniami, trzeba znaleźć odpowiedni klucz, gdy muszą edytować lub usunąć konkretny klucz. Dobrym przykładem jest sytuacja, w której użytkownik chce usunąć nieużywany klucz dostępu. Zalecane jest dołączenie do listy kluczy dostępu informacji o kluczu, takich jak data utworzenia i ostatniego użycia. Pomaga to użytkownikom znaleźć określony klucz dostępu.

Odpowiedzi na te pytania mogą też umożliwić użytkownikom nazwanie klucza dostępu od razu po jego utworzeniu lub później, ale wielu użytkowników tego nie robi. Najlepiej jest nazywać klucze dostępu automatycznie, ponieważ odzwierciedlają sygnały wysyłane od klienta lub informacje zawarte w danych logowania klucza publicznego.

Przeglądarki udostępniają ciągi znaków klienta użytkownika, których podmioty uzależniające klucze dostępu mogą używać do nadawania kluczy dostępu, ale platformy, takie jak przeglądarki na Androidzie, iOS czy przeglądarki na komputerze z funkcjami rozszerzeń, umożliwiają tworzenie klucza dostępu przez zewnętrznych menedżerów haseł, a ciąg znaków klienta użytkownika nie musi określać, kto jest rzeczywistym dostawcą klucza dostępu.

Dzięki identyfikatorowi AAGUID, które jest dołączane do danych uwierzytelniających klucza publicznego zwracanych podczas rejestracji klucza dostępu, RP mogą określić dostawcę klucza dostępu i użyć go, aby użytkownicy mogli łatwo znaleźć odpowiedni klucz.

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

AAGUID to unikalny numer identyfikujący model aplikacji (a nie jej konkretną instancję). Identyfikator AAGUID można znaleźć jako część danych uwierzytelniających klucza publicznego.

Układ obiektu atestu ilustrujący dołączone dane uwierzytelniające (zawierający atestowane dane uwierzytelniające) oraz deklaracja atestu.
Identyfikator AAGUID można znaleźć w danych uwierzytelniających.

RP mogą używać identyfikatora 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, w RPA otrzyma identyfikator AAGUID o wartości "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4". RP może dodać adnotację do klucza na liście kluczy, aby wskazać, że został on utworzony w Menedżerze haseł Google.

Ustawienia klucza dostępu na stronie ustawień zabezpieczeń pokazują szczegółowe informacje o każdym kluczu.
Przykładowy interfejs użytkownika do zarządzania kluczami dostępu.

Aby zmapować identyfikator AAGUID na dostawcę kluczy dostępu, RP mogą używać pochodzącego przez społeczność repozytorium identyfikatorów AAGUID. Wyszukaj identyfikator AAGUID na liście, aby znaleźć nazwę dostawcy klucza dostępu i jego ikonę oraz tekst danych SVG.

Pobieranie identyfikatora AAGUID jest funkcją dostępną w większości bibliotek WebAuthn. Poniższy przykład pokazuje kod rejestracji po stronie serwera za pomocą protokołu 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. W RPA można używać identyfikatorów AAGUID, aby ułatwić użytkownikom zarządzanie kluczami dostępu. Do mapowania identyfikatorów AAGUID na dostawców kluczy dostępu można używać repozytorium identyfikatorów AAGUID ze źródła.