Bağlı taraflar (RP'ler), ilişkili ortak anahtar kimlik bilgisinin AAGUID'sini inceleyerek geçiş anahtarının hangi geçiş anahtarı sağlayıcısının oluşturulduğunu belirleyebilir.
Geçiş anahtarı yönetimiyle ilgili zorluklar
Geçiş anahtarı kullanmanın avantajlarından biri, kullanıcıların tek bir hesap için birden fazla geçiş anahtarı oluşturmasına olanak tanımasıdır. Bu esneklik ve geçiş anahtarının sağlamlığı sayesinde kullanıcı, geçiş anahtarlarından birini kaybederek hesaba erişimi engellense bile alternatif geçiş anahtarları kullanarak bağlı tarafta oturum açabilir.
Bir kısıtlanmış anahtarda birden fazla geçiş anahtarını yöneten kullanıcıların yapması gereken zorluk, belirli bir geçiş anahtarını düzenlemesi veya silmesi gerektiğinde doğru geçiş anahtarını belirlemektir. Kullanıcının kullanılmayan bir geçiş anahtarını kaldırmak istemesi buna iyi bir örnektir. RP'lerin, geçiş anahtarı listesine geçiş anahtarıyla ilgili bilgileri (oluşturma tarihi ve son kullanım tarihi gibi) eklemesi önerilir. Bu sayede kullanıcılar belirli bir geçiş anahtarını bulabilir.
RP'ler, kullanıcıların geçiş anahtarı oluşturulur oluşturulmaz veya daha sonra adlandırılmasına da izin verebilir ancak birçok kullanıcı bu işlemi yapamaz. İdeal olarak geçiş anahtarları, istemciden gönderilen sinyalleri veya ortak anahtar kimlik bilgilerindeki bilgileri yansıtacak şekilde otomatik olarak adlandırılır.
Tarayıcılar, geçiş anahtarlarını adlandırmak için tarafların kullanabileceği bir kullanıcı aracısı dizesi sağlar. Ancak Android, iOS veya uzantı özelliklerine sahip masaüstü tarayıcı gibi platformlar, üçüncü taraf şifre yöneticileri tarafından geçiş anahtarı oluşturulmasına olanak tanır ve kullanıcı aracısı dizesi, gerçek geçiş anahtarı sağlayıcısının kim olduğunu yansıtmayabilir.
Geçiş anahtarı kaydında döndürülen ortak anahtar kimlik bilgilerine dahil edilen Authenticator Onayı Genel Olarak Benzersiz Tanımlayıcı (AAGUID) ile RP'ler geçiş anahtarı sağlayıcısını belirleyebilir ve kullanıcıların doğru geçiş anahtarını kolayca bulması için bunu kullanabilir.
AAGUID ile geçiş anahtarı sağlayıcısını belirleme
AAGUID, kimlik doğrulayıcının modelini tanımlayan benzersiz bir sayıdır (kimlik doğrulayıcının özel örneğini değil). AAGUID, ortak anahtar kimlik bilgilerinin kimlik doğrulayıcı verilerinin bir parçası olarak bulunabilir.
![Eklenen kimlik doğrulayıcı verilerini (onaylanmış kimlik bilgisi verilerini içerir) ve onay ifadesini gösteren onay nesnesi düzeni.](https://web.dev/static/articles/webauthn-aaguid/image/attestation_object.jpg?authuser=5&hl=tr)
RP'ler, geçiş anahtarı sağlayıcısını tanımlamak için AAGUID kullanabilir. Örneğin, bir kullanıcı Google Şifre Yöneticisi'ni kullanarak Android cihazda geçiş anahtarı oluşturursa kısıtlanmış taraf, "ea9b8d66-4d01-1d21-3ce4-b6b48cb575d4"
şeklinde bir AAGUID alır. Kısıtlanmış taraf, geçiş anahtarı listesinde geçiş anahtarının Google Şifre Yöneticisi'nde oluşturulduğunu belirten ek açıklama ekleyebilir.
![Güvenlik ayarları sayfasındaki geçiş anahtarı ayarları, her geçiş anahtarı hakkında ayrıntılı bilgi gösterir.](https://web.dev/static/articles/webauthn-aaguid/image/passkey_management.jpg?authuser=5&hl=tr)
RP'ler, AAGUID'yi geçiş anahtarı sağlayıcıyla eşlemek için topluluk kaynaklı AAGUID deposunu kullanabilir. Listedeki AAGUID'yi arayarak geçiş anahtarı sağlayıcısının adını ve simge svg veri metnini bulabilirsiniz.
AAGUID'nin alınması, çoğu WebAuthn kitaplığının sağladığı bir özelliktir. Aşağıdaki örnekte, SimpleWebAuthn kullanılan sunucu tarafı kayıt kodu gösterilmektedir:
// 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';
Sonuç
AAGUID, geçiş anahtarı oluşturan geçiş anahtarı sağlayıcısını tanımlayan benzersiz bir dizedir. RP'ler, kullanıcıların geçiş anahtarlarını yönetmelerini kolaylaştırmak için AAGUID kullanabilir. AAGUID'lerin oluşturduğu topluluk kaynaklı bir depo, AAGUID'leri geçiş anahtarı sağlayıcılarıyla eşlemek için kullanılabilir.