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: March 27, 2026

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.
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.
Subscribe to our Passkeys Substack for the latest news.
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.
Become part of our Passkeys Community for updates & support.
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.
Want to experiment with passkey flows? Try our Passkeys Debugger.
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.
Are your users passkey-ready?
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