Yayınlanma tarihi: 15 Ocak 2025, Son güncelleme tarihi: 09 Nisan 2026
WebAuthn, karma protokol için Bluetooth ile etkileşim, geçiş anahtarı sağlayıcılarla iletişim ve otomatik doldurmada geçiş anahtarı önerme gibi benzersiz özellikler sunar. Ancak farklı istemciler ve kimlik doğrulayıcılar, WebAuthn özellikleri için farklı destek düzeyleri sunar. Bu farklılık, kullanıcı deneyiminin parçalanmasına neden olabilir. Bazı kullanıcılar hatalarla karşılaşabilir veya belirli kimlik doğrulama seçeneklerini kullanamayabilir. Geliştiricilerin istemci özelliklerini belirlemesine olanak tanımak, bu varyasyonlara uyum sağlayan daha sağlam kimlik doğrulama akışları oluşturmalarını sağlar.
PublicKeyCredential.getClientCapabilities() yöntemi, güvenen tarafların tarayıcı tarafından hangi WebAuthn özelliklerinin desteklendiğini belirlemesine olanak tanır. Yöntem, desteklenen özelliklerin listesiyle sonuçlanan bir söz döndürür. Bu sayede geliştiriciler, istemcinin belirli özelliklerine göre kimlik doğrulama deneyimlerini ve iş akışlarını özelleştirebilir.
Uyumluluk
getClientCapabilities()
getClientCapabilities(), güvenen tarafların hangi özelliklerin kullanılabildiğini belirlemesine olanak tanıyan bir WebAuthn API'sidir. API'yi kullanmak için PublicKeyCredential.getClientCapabilities() işlevini çağırmanız gerekir. Döndürülen söz, her biri kullanılabilirliğini true veya false ile belirten özellikleri içeren bir nesneye dönüşür. Özellik undefined ise kullanılıp kullanılamadığı bilinmiyor demektir.
if (window.PublicKeyCredential && PublicKeyCredential.getClientCapabilities) {
const capabilities = await PublicKeyCredential.getClientCapabilities();
if (capabilities.conditionalGet === true &&
capabilities.passkeyPlatformAuthenticator === true) {
// The browser supports passkeys and the conditional mediation.
}
}
conditionalCreate
Kullanıcı daha önce kimlik bilgisi oluşturmayı kabul etmişse tarayıcı, belirgin bir modal kullanıcı arayüzü olmadan kimlik bilgisi oluşturabilir.
conditionalGet
Tarayıcı, belirgin bir modal kullanıcı arayüzü yerine, otomatik doldurma iletişim kutusunun bir parçası olarak geçiş anahtarlarını göstererek kimlik doğrulama yapabilir. Mevcut eşdeğer: PublicKeyCredential.isConditionalMediationAvailable().
hybridTransport
Tarayıcının kimlik bilgisi oluşturabilmesi ve hibrit protokolü kullanarak cihazlar arası kimlik doğrulama yapabilmesi için cihaz Bluetooth'u kullanabilir. Bu genellikle tarayıcının, kullanıcının tarayıp kimlik bilgisi içeren bir telefonla oturum açabilmesi için QR kodu gösterebileceği anlamına gelir.
passkeyPlatformAuthenticator
Tarayıcı, kullanıcı doğrulayan platform kimlik doğrulayıcısı veya hibrit protokol aracılığıyla bunu destekleyen başka bir cihaz üzerinden kimlik bilgisi oluşturup kimlik doğrulaması yapabilir. hybridTransport ||
userVerifyingPlatformAuthenticator etiketine eş değer.
relatedOrigins
Tarayıcı, ilgili kaynaklar dosyasında belirtildiği sürece RP kimliğiyle eşleşmeyen bir kimlik bilgisi oluşturup bu kimlik bilgisiyle kimlik doğrulaması yapabilir.
signalAllAcceptedCredentials
Tarayıcı, sunucudaki mevcut kimlik bilgilerini geçiş anahtarı sağlayıcısına bildirebilir. Böylece geçiş anahtarı sağlayıcısı, geçiş anahtarı listesini sunucuyla tutarlı tutabilir.
signalCurrentUserDetails
Tarayıcı, kullanıcı adı ve görünen ad gibi kullanıcı bilgilerini sunucudaki geçiş anahtarı sağlayıcısına iletebilir. Böylece geçiş anahtarı sağlayıcısı, geçiş anahtarı bilgilerini sunucuyla tutarlı tutabilir.
signalUnknownCredential
Tarayıcı, geçiş anahtarı sağlayıcısına sunucudaki silinmiş kimlik bilgilerini bildirebilir. Böylece geçiş anahtarı sağlayıcı, geçiş anahtarı listesini sunucuyla tutarlı tutabilir.
userVerifyingPlatformAuthenticator
Tarayıcı, bir platform kimlik doğrulayıcısında kimlik bilgisi oluşturabilir ve kimlik doğrulaması yapabilir. Bu, tarayıcının hibrit protokolü desteklediği anlamına gelmez.
Mevcut eşdeğer: PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable().
extensions
RP'ler, getClientCapabilities() ile kullanılabilir uzantıları da belirleyebilir.
if (capabilities['extension:appid'] === true) {
// appId extension is supported
}
Tanımlayıcının önüne extension: ve ardından bir uzantı adı eklenir.
Uzantı adları için IANA'da tanımlanan WebAuthn Uzantı Tanımlayıcıları'na bakın.
Daha fazla bilgi
Geçiş anahtarları hakkında daha fazla bilgi edinmek için Geçiş anahtarlarıyla şifresiz giriş başlıklı makaleyi inceleyin.