Passkey entegrasyonunu iyileştirmek, kullanıcı deneyimini (UX) geliştirmek ve kimlik doğrulama akışlarını kolaylaştırmak için getClientCapabilities() aracılığıyla WebAuthn Seviye 3 istemci yeteneklerini keşfedin.
Vincent
Created: August 8, 2025
Updated: August 16, 2025
See the original blog version in English here.
Our mission is to make the Internet a safer place, and the new login standard passkeys provides a superior solution to achieve that. That's why we want to help you understand passkeys and its characteristics better.
WebAuthn, passkey'lerin arkasındaki modern standarttır. Geleneksel şifrelere güvenmek yerine, açık anahtar kriptografisinden yararlanarak kullanıcıların biyometrik (parmak izi veya yüz tanıma gibi) veya fiziksel güvenlik anahtarları içerebilen passkey'ler ile kimlik doğrulamasına olanak tanır. Bu değişim, sadece güvenliği artırmakla kalmaz, aynı zamanda şifre yönetimi ihtiyacını ortadan kaldırarak kullanıcı deneyimini de iyileştirir.
WebAuthn Seviye 3 standardı,
geliştiricilere ve platformlara passkey'leri uygularken daha fazla kontrol ve esneklik
sağlamayı amaçlayan yeni istemci yetenekleri (tarayıcı API'si getClientCapabilities()
aracılığıyla alınabilir) sunar. Bu güncellemeler, passkey'lerin cihazlar, tarayıcılar ve
platformlar arasında entegrasyon sürecini basitleştiren, daha sorunsuz ve tutarlı bir
kullanıcı yolculuğu sağlayan geliştirmeler getirir.
Bu blog yazısında şu soruları yanıtlayacağız:
Yazının sonunda, bu özelliklerin modern kullanıcı beklentileriyle uyumlu, sorunsuz ve güvenli kimlik doğrulama akışları oluşturmanıza nasıl yardımcı olabileceğini anlayacaksınız.
Recent Articles
📝
Dijital Kimlik Bilgisi Doğrulayıcı Nasıl Oluşturulur (Geliştirici Rehberi)
📝
Dijital Kimlik Bilgisi Vericisi Nasıl Oluşturulur (Geliştirici Kılavuzu)
📖
WebAuthn Resident Key: Passkey Olarak Keşfedilebilir Kimlik Bilgileri
🔑
Fiziksel Yaka Kartı Erişimi ve Passkey'ler: Teknik Rehber
🔑
MFA'yı Zorunlu Kılma ve Passkey'lere Geçiş: En İyi Uygulamalar
WebAuthn istemci yetenekleri, tarayıcıların ve platformların ne tür WebAuthn işlevlerini desteklediklerini bildirmelerine olanak tanıyan bir dizi özelliktir. Basit bir deyişle, web sitelerine bir kullanıcının cihazında hangi kimlik doğrulama yöntemlerinin ve ayarlarının mevcut olduğunu bildiren bir "özellik kontrol listesi" gibi davranırlar. Bu, geliştiricilerin istemcinin yeteneklerine göre kimlik doğrulama akışlarını uyarlamasına olanak tanıyarak daha sorunsuz ve daha güvenli bir kullanıcı deneyimi sağlar.
Örneğin, bir tarayıcı biyometrik kimlik doğrulamayı (Touch ID gibi) desteklediğini belirtirse, geliştiriciler giriş akışlarını kullanıcılara parmak iziyle giriş yapma seçeneği sunacak şekilde tasarlayabilirler. Tersine, tarayıcı belirli özellikleri desteklemiyorsa, geliştiriciler şifre veya SMS OTP gibi yedek seçenekler sunabilirler.
WebAuthn Seviye 3 standardı, passkey uygulamalarını
daha çok yönlü ve kullanıcı dostu hale getiren birkaç yeni istemci yeteneği sunar.
getClientCapabilities()
API çağrısı için ilk destek Safari 17.4'te sunulmuştur.
Tarayıcıdaki desteği tespit etmek için aşağıdaki kod parçacığı faydalı olabilir:
// Check if PublicKeyCredential is supported in the current browser if (typeof PublicKeyCredential === "undefined") { console.log("PublicKeyCredential is not supported in this browser."); } // Check if getClientCapabilities method exists on PublicKeyCredential if (typeof PublicKeyCredential.getClientCapabilities === "function") { try { let capabilities = await PublicKeyCredential.getClientCapabilities(); console.log(capabilities); } catch (error) { console.error("Error getting client capabilities:", error); } } else { console.log("getClientCapabilities is not supported in this browser"); }
getClientCapabilities()
, web sitelerinin ve uygulamaların, hangi WebAuthn özelliklerini
desteklediğini belirlemek için istemciyi (ör. tarayıcı veya cihaz) sorgulamasına olanak
tanır. Geliştiriciler, istemcinin yeteneklerini anlayarak,
biyometrik kimlik doğrulama gibi mevcut
özelliklerden yararlanmak için kimlik doğrulama akışlarını optimize edebilir ve belirli
yeteneklerin olmaması durumunda alternatif yöntemler sağlayabilirler.
WebAuthn istemci yeteneklerine ve bunların passkey entegrasyonunu nasıl etkilediğine daha yakından bakalım:
conditionalCreate
, belirli koşullara göre
otomatik passkey oluşturulmasını
sağlar. Bir uygulama, şifre yöneticisinin ilgili
desteği varsa, şifre otomatik doldurma sırasında otomatik
olarak passkey oluşturmak için bu yeteneği kullanabilir. Bu özellik, kullanıcıları
otomatik olarak şifrelerden passkey'lere geçirerek
passkey benimsenmesini ve sonraki kullanımını
artırmaya yardımcı olur.
conditionalCreate
'e benzer şekilde, conditionalGet
passkey girişlerini otomatik olarak
tetikler. Bu, en iyi passkey kullanıcı deneyiminin etkinleştirilmesi gereken senaryolarda
kullanışlıdır ve girişi sadece şifresiz değil, aynı zamanda kullanıcı adısız hale getirir
(kullanıcılar sadece bir modal / açılır menüde seçilen passkey'e tıklar ve kimlik
doğrulaması yapabilir). Geliştiriciler bu yeteneği kullanarak,
passkey kimlik doğrulamasının yalnızca uygun
olduğunda gerçekleşmesini sağlayarak gereksiz istemleri en aza indirir ve kullanıcı
deneyimini geliştirir.
hybridTransport
, passkey'lerin farklı cihazlarda kullanılabilmesini sağlayarak sorunsuz
cihazlar arası kimlik doğrulamayı (QR kodları ve Bluetooth aracılığıyla) mümkün kılar.
Örneğin, bir kullanıcı akıllı telefonunda saklanan bir passkey'i masaüstündeki bir hizmete
giriş yapmak için kullanabilir. Bu yetenek, kullanıcıların passkey'leri manuel olarak
aktarmalarına veya her cihaz için geleneksel giriş yöntemlerine güvenmelerine gerek
kalmadan güvenli bir şekilde kimlik doğrulaması yapmalarına olanak tanıyarak birleşik bir
kimlik doğrulama deneyimi sağlar.
Windows Hello, Face ID veya Touch ID gibi platform doğrulayıcıları, doğrudan cihazlara yerleştirilmiştir ve kullanıcıların biyometrik veya diğer cihaza özgü yöntemlerle (ör. PIN deseni) kimlik doğrulaması yapmasını sağlayarak daha hızlı, daha sorunsuz ve daha güvenli bir passkey deneyimi sunar.
userVerifyingPlatformAuthenticator
,
passkey kimlik doğrulamasının, aktif bir parmak izi
taraması veya yüz tanıma gibi kullanıcı doğrulaması
içermesini sağlayarak ekstra bir güvenlik katmanı sunar.
relatedOrigins
yeteneği, aynı kuruluşa ait farklı alan adları (ör. amazon.com ve
amazon.de) arasında sorunsuz kimlik doğrulamasına olanak tanır. Örneğin, bir şirket birden
fazla alan adını yönetiyorsa veya farklı alt alan adlarına sahipse, kullanıcılar bir kez
giriş yapabilir ve her birinde yeniden kimlik doğrulaması yapmadan tüm mülklere
erişebilir. Bu yetenek, kullanıcı deneyimini kolaylaştırarak sürtünmeyi azaltır ve
özellikle uluslararası ortamlardaki veya çoklu hizmet platformlarına sahip işletmeler için
değerlidir.
signalAllAcceptedCredentials(options)
yöntemi, belirli bir kullanıcı için
WebAuthn kimlik bilgisi ID'lerinin tam listesini
sağlar. WebAuthn Güvenen Tarafları, kullanıcı kimliği doğrulandığında bu yöntemi
signalUnknownCredential()
yerine kullanmalıdır, çünkü bir gizlilik sızıntısı riski
yoktur. Bu yöntem, bir kullanıcının genel anahtar kimlik bilgilerine kapsamlı bir genel
bakış sunar ve o anda bağlı olan doğrulayıcılarda
güncellenmemiş olabilecek son değişiklikleri de içerir.
Bir örneğe bakalım. Bir kullanıcı (userId: A
), Base64URL ile X ve Y olarak kodlanan
Kimlik Bilgisi ID'lerine sahip 2 passkey'e sahiptir. Ardından, kullanıcı web hizmetinin
(example.com
) hesap ayarlarında X passkey'ini siler (böylece genel anahtar silinir).
Şimdi, aşağıdaki kod parçacığını çalıştıralım:
PublicKeyCredential.signalAllAcceptedCredentials({ rpId: "example.com", userId: "A", // WebAuthn User Handle, Base64URL. allAcceptedCredentialIds: ["Y"], });
Yukarıdaki kodun yürütülmesi sırasında doğrulayıcı mevcutsa, doğrulayıcı gelecekteki kimlik doğrulama törenlerinden X passkey'ini siler veya gizler. Ancak, doğrulayıcı yürütme sırasında takılı olmayabilir, bu nedenle güvenen tarafların bu kodu periyodik olarak, örneğin her oturum açmada yürütmeleri önerilir.
allAcceptedCredentialIds
içinde bulunmayan
passkey'ler, potansiyel olarak geri
döndürülemez bir şekilde kaldırılacak veya gizlenecektir. Bu nedenle, güvenen tarafların
geçerli WebAuthn kimlik bilgisi ID'lerinin listeden asla kaldırılmamasına dikkat etmesi
önemlidir. Eğer geçerli bir kimlik bilgisi ID'si
yanlışlıkla kaldırılırsa, güvenen taraf passkey'i "göstermek"
için mümkün olan en kısa sürede başka bir signalAllAcceptedCredentials(options)
çağrısına hemen dahil etmelidir. Eğer passkey gizlenmemiş de kaldırılmışsa, durumu
düzeltmek için yapılabilecek pek bir şey yoktur.
signalCurrentUserDetails(options)
yöntemi, kullanıcının mevcut adını ve WebAuthn Görünen
Adını bildirir. signalCurrentUserDetails(options)
çağrıldığında, istemci bu eylemi
yürütmek için tanımlanmış bir dizi adımı izler.
Bir örneğe bakalım. WebAuthn Kullanıcı ID'si A
olan
bir kullanıcı, bir web sitesinin (example.com
) hesap ayarlarında adını günceller.
Ardından, güvenen taraf aşağıdaki kodu çalıştırabilir:
PublicKeyCredential.signalCurrentUserDetails({ rpId: "example.com", userId: "A", // user ID, Base64URL. name: "New user name", displayName: "New display name", });
Doğrulayıcı daha sonra yerel olarak kaydedilmiş passkey'in meta verilerini günceller. Bunun en büyük faydası, gelecekteki Koşullu UI / passkey otomatik doldurma isteklerinde, Koşullu UI seçim / açılır menüsünün güncellenmiş adı ve WebAuthn Görünen Adını göstermesidir.
signalUnknownCredential(options)
yöntemi, bir WebAuthn
Kimlik Bilgisi ID'sinin WebAuthn Güvenen Tarafı
tarafından tanınmadığını, örneğin passkey'in kullanıcı tarafından silinmesi durumunda
bildirir. signalAllAcceptedCredentials(options)
'ın aksine, bu yöntem kabul edilen kimlik
bilgisi ID'lerinin tam listesini ve WebAuthn
Kullanıcı Tanıtıcısını sağlamayı gerektirmez, böylece
kimliği doğrulanmamış arayanlara olası gizlilik sızıntılarını önler.
Bir örneğe bakalım. Bir kullanıcı, bir web sitesinin (example.com
) hesap ayarlarında
kimlik bilgisi ID'si X
olan bir passkey'i siler
(böylece genel anahtar silinir). Ancak, özel anahtar hala kullanıcının cihazında
mevcuttur. Bu, gelecekteki Koşullu UI /
passkey otomatik doldurma giriş
isteklerinde (boş bir allowCredentials
listesiyle), passkey'in hala seçilebileceği
anlamına gelir. Ancak giriş denemesi başarısız olacaktır, çünkü genel anahtar zaten
silinmiştir, bu nedenle güvenen taraf şunu çalıştırmalıdır:
PublicKeyCredential.signalUnknownCredential({ rpId: "example.com", credentialId: "X", // credential ID the user just tried, Base64URL });
Doğrulayıcı daha sonra gelecekteki kimlik doğrulama
törenlerinden kimlik bilgisi ID'si X
olan passkey'i
siler veya gizler.
WebAuthn Seviye 3 standardı hala taslak aşamasında olduğundan, bu yeni istemci yeteneklerinin benimsenmesi henüz tam olarak yaygınlaşmamıştır. Farklı tarayıcılar bu özellikleri kademeli olarak uygulamaktadır, ancak destek değişiklik göstermektedir. Aşağıda, yukarıda bahsedilen büyük tarayıcılardaki kullanılabilirliğe ilişkin güncel bir genel bakış bulunmaktadır:
Tarayıcı | İstemci Yeteneklerini Destekleyen Sürüm | Notlar |
---|---|---|
Chrome | 133 | Chrome Platform Durumu & Chromium Hata Takipçisi |
Safari | 17.4+ | getClientCapabilities() özelliğini sunan ilk tarayıcı. Ekim 2024 itibarıyla Safari, conditionalCreate , conditionalMediation , hybridTransport , passkeyPlatformAuthenticator ve userVerifyingPlatformAuthenticator gibi özellikleri desteklemektedir. |
Edge | 133 | Chromium 133 tabanlıdır. Chromium Hata Takipçisi |
Firefox | 135 | Mozilla, Firefox 135 ve üzeri sürümlerde WebAuthn Seviye 3 istemci yeteneklerini uygulamaya başlamıştır. |
Benimseme hızı, Seviye 3 olgunlaştıkça ve daha fazla tarayıcı bu özellikleri sundukça
muhtemelen artacaktır. Şu anda kaç kullanıcının getClientCapabilities()
'ten
yararlanabileceğini görmek isterseniz, ücretsiz
Passkeys Analyzer kullanarak gerçek dünya verilerini
kontrol edebilirsiniz. Geliştikçe daha geniş uyumluluk için planlama yapmak üzere tarayıcı
sürüm notlarını ve ilgili belgeleri takip edin.
Bir geliştirici olarak, bu yeni WebAuthn istemci yeteneği tespitinin sizin için ne anlama geldiğini ve bunları uygulamanızda nasıl kullanmanız gerektiğini kendinize sorabilirsiniz. Aşağıda, bunları kullanmak için öneriler bulacaksınız.
Ancak, henüz tüm tarayıcıların getClientCapabilities()
API çağrısını desteklemediğini
unutmayın (Kasım 2024 itibarıyla). Tüm tarayıcılar yetişene kadar kullanılabilecek bir
polyfill burada mevcuttur.
İstemcinin desteklediği özellikleri sayfa yüklemesinin / kimlik doğrulama akışının
başlangıcında tespit etmek için kodunuzun başlarında getClientCapabilities()
kullanın.
Bu, deneyimi dinamik olarak özelleştirmenize ve cihazda / tarayıcıda çalışan
passkey özelliklerini sağlamanıza
olanak tanır; örneğin, desteklendiğinde platform kimlik doğrulamasını teşvik etmek veya
desteklenmiyorsa alternatif yöntemler (ör. SMS OTP'leri veya
donanım güvenlik anahtarları) sunmak
gibi.
Şu anda şifre kullanan bir web sitesine / uygulamaya passkey ekliyorsanız,
conditionalCreate
özelliği passkey benimsemeniz
için gerçek bir destekleyici olabilir. Arka planda, uygun bir kimlik bilgisi yöneticisiyle
(Ekim 2024 itibarıyla yalnızca Apple Passwords)
şifre otomatik doldurma sırasında, otomatik olarak bir
passkey oluşturulur ve gelecekteki otomatik doldurmalarda tercih edilir.
Sadece yüksek bir passkey benimsemesine değil,
aynı zamanda yüksek bir passkey giriş kullanımına da
sahip olmak için, cihazın / tarayıcının conditionalGet
'i kontrol ederek
Koşullu UI /
Passkey Otomatik Doldurma kullanıp
kullanamayacağını kontrol etmeye çalışın. Bu şekilde, kullanıcıları oluşturulan passkey'i
girişler için kullanmaya teşvik edersiniz, çünkü işletim sistemi / tarayıcı tarafından
proaktif olarak önerilir ve bir şifreyi otomatik doldurmaktan daha az çaba gerektirir.
Kullanıcıların masaüstünden hizmetinize erişiyor olsalar bile akıllı telefonlarından
sorunsuz bir şekilde giriş yapmalarını sağlamak için cihazlar arası kimlik doğrulamayı
(QR kodu ve Bluetooth aracılığıyla) etkinleştirmek
için hybridTransport
'u kullanın.
WebAuthn istemci yetenekleri, mevcut passkey boşluklarını gidermede ileriye doğru atılmış önemli bir adımı temsil etmektedir. Bu blog yazısında, WebAuthn istemci yetenekleri hakkındaki temel soruları ele aldık:
getClientCapabilities
,
conditionalCreate
, hybridTransport
ve daha fazlası dahil olmak üzere Seviye 3
standardında sunulan yeni yeteneklere genel bir bakış sunduk.Sizi yeni WebAuthn Seviye 3 özelliklerini keşfetmeye ve tarayıcılardaki benimsenmeleri hakkında güncel kalmaya teşvik ediyoruz. Passkey'leri uygulamak ve bu gelişmiş yeteneklerden yararlanmak istiyorsanız, uzman rehberliği ve destek için bizimle iletişime geçin.
Related Articles
Table of Contents