Użytkownicy mogą sprawdzić, który dostawca kluczy dostępu utworzył klucz dostępu, sprawdzając identyfikator AAGUID powiązanych danych logowania z kluczem publicznym.
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 jeśli użytkownik utraci dostęp do konta, ponieważ zgubił jeden z kluczy dostępu, może 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 w urządzeniu 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 RP dołączali informacje o kluczu dostępu, takie jak data utworzenia i ostatniego użycia, na liście kluczy dostępu. Ułatwia to użytkownikom znalezienie konkretnego klucza 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 przez 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 RP 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 za pomocą identyfikatora AAGUID
AAGUID to unikalny numer, który identyfikuje model uwierzytelniania (nie konkretną instancję uwierzytelniania). Identyfikator AAGUID można znaleźć w danych uwierzytelniających danych logowania klucza publicznego.
RP mogą używać AAGUID do identyfikacji dostawcy kluczy 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.
Aby zmapować identyfikator AAGUID na dostawcę kluczy dostępu, RP może skorzystać z repozytorium 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ą zapewniają większość bibliotek WebAuthn. Poniższy przykład pokazuje kod rejestracji po stronie serwera, który korzysta z 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. Usługodawcy 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 identyfikatorów AAGUID na dostawców kluczy dostępu.