Bu makale, yerel uygulamalarda (iOS + Android) geçiş anahtarlarının nasıl uygulanacağını açıklamaktadır. Geçiş anahtarı kimlik doğrulaması için hangi WebView türünün önerildiğini öğreneceksiniz.

Vincent
Created: June 20, 2025
Updated: November 13, 2025

See the original blog version in English here.
60-page Enterprise Passkey Whitepaper:
Learn how leaders get +80% passkey adoption. Trusted by Rakuten, Klarna & Oracle
| Yaklaşım | Benimsenme | Passkey Oluşturma | Passkey Kullanma | Passkey Yönetimi | Teknik Karmaşıklık | OAuth Desteği |
|---|---|---|---|---|---|---|
| Yerel Uygulama | 🟢🟢🟢 | Yüksek benimsenme, en iyi UX, sorunsuz biyometrik | Anında, sessiz kimlik doğrulama | Tam yerel kontrol | Orta-Yüksek | Ayrı bir akış gerektirir |
| Sistem WebView | 🟢🟢 | İyi benimsenme, tarayıcı benzeri deneyim | Standart tarayıcı UX, paylaşılan anahtar zinciri | Tarayıcı tabanlı yönetim | Düşük | Mükemmel |
| Gömülü WebView | 🟢 | Düşük benimsenme, daha fazla kurulum gerektirir | Yerel destek iOS ve Android (WebKit 1.12.1+), Koşullu Arayüz yok | Sınırlı kontrol | Orta-Yüksek | Yok |
Not: Sistem WebView ve Gömülü WebView genellikle bir arada kullanılır. Sistem WebView, kimlik bilgilerinin otomatik paylaşıldığı oturum açma işlemini yönetir, ardından Gömülü WebView, ayarlarda passkey yönetimini oluşturur.
Anahtar Karar Faktörleri:
Modern mobil platformlar, passkey'leri yerel uygulamanıza entegre etmek için her biri kullanıcı deneyimi, teknik karmaşıklık ve OAuth uyumluluğu açısından farklı ödünler veren üç ayrı yaklaşım sunar:
Yerel Uygulama: Platform API'lerini (iOS AuthenticationServices, Android Credential Manager) kullanarak doğrudan uygulamanızın içine passkey akışları oluşturun. Sorunsuz biyometrik kimlik doğrulama ile en iyi kullanıcı deneyimini sağlar, ancak orta ila yüksek düzeyde teknik uygulama çabası gerektirir.
Sistem WebView: Kimlik doğrulamasını yönetmek için platformun tarayıcı bileşenini (iOS ASWebAuthenticationSession / SFSafariViewController, Android Chrome Custom Tabs) kullanın. OAuth tabanlı oturum açma akışları için mükemmeldir ve kimlik bilgilerini sistem tarayıcısıyla paylaşır.
Gömülü WebView: Web kimlik doğrulamasını yerel bir uygulama iskeletiyle yeniden kullanmak için uygulamanızın içine özelleştirilebilir bir web görünümü (iOS WKWebView, Android WebView) gömün. URL çubukları olmadan yerel benzeri bir görünüm ve web görünümü kullanıcı arayüzü üzerinde tam kontrol sağlar. Passkey işlevselliğini etkinleştirmek için izinler ve yetkilendirmeler (iOS) ve AndroidX WebKit 1.12.1+ (Android) ile WebView yapılandırması dahil olmak üzere ek kurulum gerektirir.
Doğru seçim, uygulamanızın kimlik doğrulama mimarisine, OAuth sağlayıcıları kullanıp kullanmadığınıza, kullanıcı arayüzü üzerinde ne kadar kontrole ihtiyacınız olduğuna ve önceliği yerel olarak mı geliştirdiğinize yoksa web bileşenlerini mi yeniden kullandığınıza bağlıdır.
Bir yerel passkey uygulaması, platforma özgü API'ler kullanılarak doğrudan uygulamanızın kullanıcı arayüzüne yerleştirilmiş kimlik doğrulama akışları ile en uygun kullanıcı deneyimini sağlar. Kullanıcılar, platforma özgü diyaloglardan, sorunsuz biyometrik doğrulamadan ve mümkün olan en hızlı oturum açma sürelerinden yararlanır.
Yerel Uygulamayı ne zaman seçmelisiniz:
preferImmediatelyAvailableCredentials kullanabilir, bu da kullanıcı adı girmeden
en hızlı oturum açma deneyimini sağlar.Anahtar Avantaj: preferImmediatelyAvailableCredentials()
Yerel uygulamalar, passkey'ler mevcut
olduğunda uygulama başlangıcında hemen görünen
otomatik bir passkey katmanı
oluşturmak için preferImmediatelyAvailableCredentials()'dan yararlanabilir. Bu kullanıcı
adısız akış, mümkün olan en hızlı oturum açma deneyimini sunar—kullanıcılar önce bir
tanımlayıcı girmeden passkey'lerini anında görürler. Bu özellik, sadece yerel
uygulamalara özeldir ve WebView çeşitlerinde mevcut değildir.
WebView uygulamaları Koşullu Arayüz (giriş alanlarındaki passkey önerileri) kullanabilse de, yerel uygulamanın otomatik katmanı, kimlik doğrulama uygulama açılır açılmaz başladığı için daha yüksek passkey kullanım oranlarıyla üstün bir UX sağlar.
Teknik Gereksinimlere Genel Bakış:
Yerel passkey entegrasyonu, uygulamanız ve web alan adınız arasında kriptografik güven gerektirir. Bu olmadan, işletim sistemi tüm WebAuthn işlemlerini reddedecektir. Anahtar gereksinimler:
/.well-known/ adresinde barındırılan Uygulama-Alan Adı İlişkilendirme DosyalarıEn büyük fayda: web sitenizde oluşturulan passkey'ler, uygulamanızda ve tam tersi şekilde sorunsuzca çalışır.
iOS üzerinde passkey'leri yerel olarak uygulamak, WebAuthn işlemleri için bir API sağlayan Apple'ın AuthenticationServices çerçevesini içerir:
Anahtar Bileşenler:
ASAuthorizationController: Kimlik doğrulama akışını yönetirASAuthorizationPlatformPublicKeyCredentialProvider: Passkey istekleri oluştururGeliştirme İpuçları
?mode=developer
ekleyin.Android'in yerel passkey uygulaması, Credential Manager API'sini (veya geri uyumluluk için daha eski FIDO2 API'sini) kullanır:
Anahtar Bileşenler:
CredentialManager: Tüm kimlik bilgisi işlemleri için merkezi APICreatePublicKeyCredentialRequest: Passkey kaydı içinGetCredentialRequest: Passkey kimlik doğrulaması içinNot: Android şu anda iOS'in yerel uygulamalardaki Koşullu Arayüz klavye önerilerinden yoksundur (ancak Koşullu Arayüz web uygulamalarında çalışır).
Passkey'leri yerel olarak uygulamak, önemli zorluklar ve öğrenilen dersler içerir: İşletim sistemi düzeyinde entegrasyon, farklı cihazlar ve işletim sistemi sürümleri arasında sorunlar ortaya çıkarabilir.
Passkey'leri ham platform API'lerini kullanarak uygulayabilseniz de, amaca yönelik SDK'lar, WebAuthn karmaşıklığını, uç durumları ele alarak ve yerleşik telemetri sağlayarak geliştirmeyi önemli ölçüde hızlandırır. SDK'lar ayrıca birim testi için taklit edilebilir arayüzler sunar (simülatörlerde biyometriyi test edemeyeceğiniz için bu çok önemlidir).
Öneri: Yerel uygulamalar için, üretim dağıtımları aracılığıyla keşfedilen çok sayıda uç durumu ele alan, ek telemetri ve test sağlayan Corbado SDK'larını (iOS Swift Passkey SDK, Android Kotlin Passkey SDK) kullanmanızı öneririz.
Igor Gjorgjioski
Head of Digital Channels & Platform Enablement, VicRoads
Corbado proved to be a trusted partner. Their hands-on, 24/7 support and on-site assistance enabled a seamless integration into VicRoads' complex systems, offering passkeys to 5 million users.
Milyonların benimsediği passkey'ler, hem de hızlıca. Corbado'nun Benimseme Platformu ile başlayın.
Ücretsiz Denemeyi BaşlatSistem WebView'ları, uygulamanız içinde kimlik doğrulamasını yönetmek için platformun yerel tarayıcı bileşenini kullanır. Tamamen yerel uygulamaların aksine, Sistem WebView'ları web içeriğini gerçek sistem tarayıcısını (iOS'ta Safari, Android'de Chrome) kullanarak görüntüler, paylaşılan çerezleri, kaydedilmiş kimlik bilgilerini ve tanıdık tarayıcı güvenlik göstergelerini korur.
Sistem WebView'ı ne zaman seçmelisiniz:
Anahtar Avantajlar:
Platform Bileşenleri:
ASWebAuthenticationSession (kimlik doğrulama akışları için önerilir) veya
SFSafariViewController (genel tarama)Google ve GitHub gibi büyük şirketler, mobil uygulamalarına passkey ile oturum açma eklemek için mevcut web kimlik doğrulama sayfaları üzerindeki WebView katmanları aracılığıyla bu yaklaşımı benimsemiştir. Bu, tamamen yerel kimlik doğrulama yeniden oluşturmalarının hemen mümkün olmadığı durumlarda iyi çalışır.
iOS, kimlik doğrulama için iki ana Sistem WebView bileşeni sunar:
ASWebAuthenticationSession (Kimlik Doğrulama için Önerilir):
SFSafariViewController (Genel Tarama):
| Özellik | ASWebAuthenticationSession | SFSafariViewController |
|---|---|---|
| Ana Kullanım Alanı | Kimlik doğrulama akışları | Genel web taraması |
| OAuth/OIDC | Mükemmel | İyi |
| Passkey Desteği | Evet | Evet |
| Özelleştirme | Sınırlı | Minimal |
Uygulamanız OAuth tabanlı oturum açma kullanıyorsa, ASWebAuthenticationSession,
özellikle kimlik doğrulama senaryoları için tasarlandığı ve güvenlik ile kullanıcı
deneyimi arasında en iyi dengeyi sağladığı için önerilen seçimdir.
Chrome Custom Tabs (CCT), uygulamanız içinde Chrome destekli bir kimlik doğrulama deneyimi sunar:
Anahtar Özellikler:
OAuth Entegrasyonu: Chrome Custom Tabs, iOS ASWebAuthenticationSession'ın Android eşdeğeridir ve depolanan passkey'lere erişimi korurken mükemmel OAuth desteği sağlar.
Gömülü WebView'lar, uygulamanız içinde web içeriği oluşturma üzerinde tam kontrol sağlar, çerezlerin, oturumların ve gezinmenin URL çubuğu olmadan doğrudan manipülasyonuna olanak tanır. Ancak bu kontrol, passkey işlevselliğini etkinleştirmek için ek teknik gereksinimlerle birlikte gelir.
Gömülü WebView'ı ne zaman seçmelisiniz:
Önemli Bağlam:
Birçok uygulama hibrit bir yaklaşım kullanır: Sistem WebView, ilk OAuth kimlik doğrulamasını (passkey'lerin sorunsuz çalıştığı yer) yönetir, ardından ayarlarda passkey'leri yönetmek için kimlik doğrulama sonrası Gömülü WebView'a geçer. Zorluklar, passkey'leri doğrudan Gömülü WebView'lar içinde kullanmaya çalışırken ortaya çıkar.
Teknik Gereksinimler:
Gömülü WebView'lar, Sistem WebView'larına kıyasla ek kurulum gerektirir:
Platform Bileşenleri:
WKWebViewandroid.webkit.WebViewÖdünler:
Passkey'leri WebView'lar aracılığıyla uygularken, Sistem WebView'ları ile Gömülü WebView'lar arasındaki ayrımı anlamak çok önemlidir. Yukarıda özetlenen üç yaklaşım (Yerel Uygulama, Sistem WebView ve Gömülü WebView) her biri farklı kullanım durumlarına hizmet eder.
İOS'ta, uygulama içi web içeriğini görüntülemek için birden fazla seçeneğiniz vardır:
Android'de ana seçenekler şunlardır:
android.webkit.WebView). Son derece özelleştirilebilirdir ancak
uygulamanızın sürecinde çalışır.Sonraki bölümlerde, iOS ve Android için bu WebView türlerine biraz daha derinlemesine dalacağız ve hangisinin passkey kimlik doğrulama akışları için en uygun olabileceğini tartışacağız.
Apple'ın platformu yukarıda listelenen üç WebView seçeneğini sunar. Seçiminiz, passkey'lerin uygulama içinde ne kadar sorunsuz kullanılabileceğini etkileyecektir:
iOS'taki farklı WebView davranışlarını test etmek için WebView - WKWebView and UIWebView rendering uygulamasını öneririz.
WKWebView, iOS için çok yönlü bir WebView bileşenidir. Geliştiriciler, kullanıcı arayüzü ve davranış üzerinde yüksek derecede kontrol ile web içeriğini oluşturmak için bir WKWebView gömebilir. WKWebView, Safari ile aynı işleme motorunu kullanır, bu nedenle çok performanslıdır ve modern web özelliklerini destekler. Teorik olarak, WKWebView doğru yapılandırılırsa WebAuthn'ı (ve dolayısıyla passkey'leri) yönetebilir, ancak bazı gelişmiş tarayıcı özelliklerinin güvenlik nedeniyle kısıtlanabileceğini unutmayın. Dikkat edilmesi gereken bir şey, izleme gereken, WKWebView'in varsayılan olarak çerezleri veya anahtar zinciri verilerini Mobil Safari ile paylaşmamasıdır. Kullanıcılar, WebView oturumları Safari'nin oturumundan izole olduğu için yeniden oturum açmak zorunda kalabilirler. Ayrıca, WKWebView içeriği uygulama tarafından tamamen özelleştirilebildiğinden, kullanıcı bir adres çubuğu veya Safari kullanıcı arayüzü görmez – bu markalaşma için harikadır, ancak kullanıcının sayfanın meşruiyetini doğrulamak için daha az ipucuna sahip olduğu anlamına gelir (bir oltalama karşıtı endişe). Bazı uygulamalar, komut dosyaları enjekte etmek veya içeriği değiştirmek için WKWebView'i kötüye kullanmıştır (örneğin, TikTok'un uygulama içi tarayıcısı aracılığıyla izleme JS enjekte ettiği belirtilmiştir), bu nedenle WKWebView'i güvenli, kullanıcıya güvenilir bir şekilde kullanmaya dikkat etmek gerekir.
SFSafariViewController, uygulama içi bir Safari deneyimi sunar. SFSafariViewController ile bir URL açtığınızda, bu neredeyse gerçek Safari tarayıcısında açmak gibidir, ancak kullanıcı uygulamanızın kullanıcı arayüzünde kalır. Passkey'ler için avantajı önemlidir: esasen Safari olduğu için, kullanıcının iCloud Keychain'i ve kayıtlı passkey'leri erişilebilirdir. Not: iOS 11+ üzerinde çerezler paylaşılmaz. Bu, kullanıcının siteniz için zaten bir passkey'i varsa, Safari'nin onu bulabileceği ve hatta kolay oturum açma için Koşullu Arayüz otomatik tamamlama özelliğini görüntüleyebileceği anlamına gelir. SFSafariViewController daha az özelleştirilebilirdir (araç çubuğunu çok fazla değiştiremezsiniz), ancak birçok güvenlik ve gizlilik özelliğini otomatik olarak yönetir. URL çubuğu, HTTPS için asma kilit simgesiyle birlikte gösterilir, bu da kullanıcılara doğru alan adında olduklarına dair güven verir. Genel olarak, SFSafariViewController ham bir WKWebView'den daha güvenli kabul edilir ve uygulanması daha basittir (Apple bunu hazır bir bileşen olarak sunar). Ana ödün, görünüm ve his üzerinde biraz kontrol kaybetmenizdir. Bir kimlik doğrulama akışı için bu genellikle kabul edilebilir. Buradaki öncelik, SFSafariViewController'ın Safari'nin bağlamını kullanarak mükemmel olduğu güvenlik ve oturum açma kolaylığıdır.
| WKWebView | SFSafariViewController | |
|---|---|---|
| Kullanıcı deneyimi | - Yerel his: Geliştiriciler, uygulamanın tasarımına uygun görünüm ve hissi özelleştirebildiği için kullanıcılar web içeriğinin uygulamanın yerel bir parçası olduğunu hissedebilirler. - Otomatik doldurma: Safari'den gelen verilerle otomatik doldurma mümkündür | - Sorunsuz: Kullanıcının Safari ayarlarını kullanarak sorunsuz bir kullanıcı deneyimi sağlar ve yerel uygulama ile tarayıcı arasında tutarlı bir web gezintisi temin eder. |
| Geliştirici deneyimi | - Yüksek oranda özelleştirilebilir: Geniş özelleştirme ve yapılandırma seçenekleri mevcuttur - Esnek: Web içeriğiyle etkileşim için birçok API | - Orta düzeyde özelleştirilebilir: Özellikle WKWebView'e kıyasla sınırlı özelleştirme seçenekleri - Basit: WKWebView'e kıyasla uygulanması daha basittir |
| Performans | - Oldukça yavaş: Uygulamaya ve web içeriğine bağlı olarak, yükleme hızları optimize edilebilir, ancak özel özelliklerin ve etkileşimlerin ek işlenmesi nedeniyle SFSafariViewController'a kıyasla hala daha yavaş olabilir. | - Oldukça hızlı: Genellikle hız ve verimlilik için optimize edilmiş Safari motorundan yararlandığı için daha iyi performans sunar ve web sayfaları için hızlı yükleme süreleri sağlar. |
| Güven ve tanınma | - URL Gösterimi gerekli değil: WKWebView genellikle URL'yi göstermez, bu da kullanıcıların web sayfasını doğrulamasını zorlaştırır. Kötü amaçlı uygulamaların bu davranışı taklit etme ve kimlik bilgilerini oltalama potansiyeli vardır. | - Tarayıcı benzeri Deneyim: Web sayfalarını Safari kullanarak oluşturur ve "tarayıcı benzeri" bir deneyim sunar. Kullanıcılar URL'yi görebilir ve Safari'nin otomatik doldurma özelliklerine erişebilir, bu da tanıdık arayüz nedeniyle daha fazla güven aşılayabilir. |
| İzolasyon | - Ayrılmış: Çerezler ve oturumlar Safari'den ayrılmıştır; kullanıcılar otomatik olarak bir WKWebView'e giriş yapmazlar. | - Ayrılmış: Çerezler ve oturumlar Safari'den ayrılmıştır; kullanıcılar SFSafariViewController'a da otomatik olarak giriş yapmazlar. |
| Güvenlik açıkları | - Güvenli: Apple'ın uygulama sanal alanı sayesinde doğası gereği güvenlidir, ancak davranış ve güvenlik uygulamanın uygulamasına bağlıdır. Doğru uygulanmazsa potansiyel güvenlik açıkları olabilir. | - Daha Güvenli: Oltalama karşıtı ve kötü amaçlı web sitesi uyarıları da dahil olmak üzere Safari'nin yerleşik güvenlik özelliklerinden yararlanır. Bu özellikler ve kullanıcının Safari'ye aşinalığı nedeniyle genellikle web içeriğini görüntülemek için WKWebView'den daha güvenli kabul edilir. |
| Diğer | - Özellikler mevcut değil: Bazı tarayıcı özellikleri (ör. WebAuthn), güvenlik endişeleri ve WKWebView'in uygulama bağlamında çalışması nedeniyle tam olarak erişilebilir olmayabilir. - JavaScript enjeksiyonu: TikTok gibi bazı uygulamalar, uygulama içi WKWebView'lerine izleme JavaScript'i enjekte eder veya kullanıcı denetimini kısıtlar (ör. Facebook) - Gizlilik sorunları: Gizlilikle ilgili daha fazla topluluk geri bildirimi | - JavaScript enjeksiyonu yok: Uygulamadan JavaScript yürütülmesine izin vermez, bu da güvenlik ve gizliliği artırır. Ayrıca JavaScript uyarılarını veya onaylarını desteklemez, bu da belirli web sayfalarında kullanıcı deneyimini potansiyel olarak etkileyebilir. - Okuyucu Modu: Makalelerin temiz, okunması kolay bir sürümü için bir okuyucu modu sağlar. |
SFAuthenticationSession / ASWebAuthenticationSession – Bu sınıflar (ikincisi daha yeni Swift dostu addır) özellikle OAuth veya OpenID Connect gibi oturum açma akışları için oluşturulmuştur. Bir kullanıcıyı bir web sayfası aracılığıyla (belki harici bir IdP'ye) doğrulamanız gerektiğinde, bu oturumlar iOS'ta önerilen seçimdir. Bunlar, perde arkasında Safari tarayıcısını kullanmaları ve Safari ile çerezleri/depolamayı paylaşmaları açısından SFSafariViewController'a çok benzer. Anahtar fark, SFAuthenticationSession'ın her zaman kullanıcıya uygulamanın bir web sayfası kullanarak kimlik doğrulamak istediğini sorması (kullanıcı farkındalığı için) ve mevcutsa kullanıcının mevcut Safari oturumunu otomatik olarak kullanmasıdır.
Bunun faydası, sorunsuz bir SSO deneyimidir – eğer kullanıcı Safari'de sağlayıcıya zaten giriş yapmışsa, bu oturum başka bir girişten kaçınmak için bu çerezi kullanabilir. Passkey'ler için bu önemlidir, çünkü Safari/iCloud Anahtar Zinciri'nde depolanan herhangi bir passkey kimlik bilgisinin burada da kullanılabileceği anlamına gelir. Apple'ın resmi kılavuzu, oturum açma akışı gibi görünen her şey için ASWebAuthenticationSession kullanmaktır. Artıları, gelişmiş gizliliktir (uygulamanız kimlik bilgilerini veya çerezleri asla görmez, Safari halleder) ve yerleşik SSO desteğidir. Eksisi, kimlik doğrulama akışlarıyla sınırlı olmasıdır (uygulamanızda sadece rastgele web içeriği oluşturmak için kullanmazsınız). Özetle, iOS'ta bir WebView yaklaşımı seçerseniz, ASWebAuthenticationSession genellikle passkey'leri uygulamak için en iyi seçimdir çünkü güvenlidir, Safari ile durumu paylaşır ve kimlik doğrulama için özel olarak tasarlanmıştır.
Android'de WebView kararı, klasik WebView ile Chrome Custom Tabs arasında verilir:
Android'deki farklı WebView davranışlarını test etmek için WebView vs Chrome Custom Tabs uygulamasını öneririz.
Android WebView (android.webkit.WebView), web sayfalarını etkinlik düzeninize gömmenizi sağlayan bir bileşendir. Gezinmeyi kesintiye uğratabilmeniz, JavaScript enjekte edebilmeniz, kullanıcı arayüzünü özelleştirebilmeniz vb. açısından WKWebView'e benzer. Ayrıca uygulamanızın sürecinde çalışır. Passkey'ler için bir WebView kullanmak, uygulamanızın web oturum açma sayfanızı yüklediği ve bu sayfanın bir WebAuthn passkey seremonisi başlatabileceği anlamına gelir. Modern Android WebView, WebAuthn'ı destekler (cihazın WebView uygulamasının Android Sistem WebView'u veya Chrome bileşeni aracılığıyla güncel olması koşuluyla). Önemli bir husus: varsayılan olarak, bir Android WebView çerezleri veya depolanan kimlik bilgilerini kullanıcının Chrome tarayıcısıyla paylaşmaz. Dolayısıyla, WebView'de oluşturulan veya kullanılan herhangi bir passkey, Chrome tarafından bilinmeyebilir ve tersi de geçerlidir. Bu izolasyon güvenlik için iyi olabilir (uygulamanız tarayıcı çerezlerini okuyamaz), ancak kullanıcılar Chrome'da zaten kimlik doğrulaması yapmışlarsa onları tekrar oturum açmaya zorlayabilir. Başka bir sorun da güvendir. Düz bir WebView, URL'yi veya SSL kilit simgesini göstermez, bu nedenle kullanıcılar uygulamanıza onları oltalamayacağına dair tamamen güvenmek zorundadır. Google, potansiyel oltalama (phishing) riskleri nedeniyle Google OAuth oturum açmaları için WebView kullanımını bile yasaklamıştır. Performans açısından WebViews iyidir, ancak özellikle ağır sayfalar yükleniyorsa, kullanıcının varsayılan tarayıcısını kullanmaktan daha yavaş veya daha fazla bellek yoğun olabilirler.
Chrome Custom Tabs (CCT) hibrit bir yaklaşımdır. Uygulamanızın, uygulamanızın bir parçası gibi görünen Chrome tarafından oluşturulmuş bir sayfa açmasına izin verirler. Araç çubuğu rengini özelleştirebilir, bir uygulama logosu ekleyebilirsiniz vb., ancak içerik ayrı bir süreçte Chrome tarafından oluşturulur. Passkey'ler için, CCT'lerin birkaç faydası vardır: kullanıcının çerezlerini ve kimlik bilgilerini Chrome ile paylaşırlar, yani kullanıcı Chrome aracılığıyla (Google Parola Yöneticisi) bir passkey kaydetmişse, Custom Tab buna erişebilir. Kullanıcı ayrıca gerçek URL'yi ve güvenlik göstergelerini görecektir, bu da güven oluşturur. Performans genellikle daha iyidir – Chrome, daha hızlı yükleme için arka planda "ısınabilir". Ve önemli olarak, güvenlik güçlüdür: esasen Chrome uygulaması olduğu için, Google Güvenli Tarama gibi şeyler oturumu korur ve uygulamanız sayfaya keyfi komut dosyaları enjekte edemez (belirli saldırıları önler).
Dezavantajı, kullanıcının Chrome'u (veya desteklenen bir tarayıcıyı) yüklemiş ve güncel tutmuş olmasını gerektirmesidir. Çoğu Android kullanıcısı bunu yapar, ancak belirli bölgelerdeki bazı cihazlarda bu bir sorun olabilir. Genel olarak, Android'de gömülü bir web yaklaşımıyla giderseniz, Chrome Custom Tabs, entegrasyon ve güvenlik arasında iyi bir denge sağladıkları için passkey akışları için önerilir. Aslında, bunlar iOS'in SFSafariViewController/ASWebAuthSession'ına birçok yönden benzerler – kimlik doğrulama için varsayılan tarayıcıdan yararlanırlar.
(Not: Apple'ın WKWebView vs SFSafariViewController ve Android'in WebView vs CCT'si arasında birçok paralellik vardır. Hem Safari VC hem de Chrome Tabs tarayıcı durumunu paylaşır ve daha iyi güvenlik sağlar, oysa WKWebView/Android WebView daha fazla kontrol verir ancak web içeriğini izole eder. Passkey'ler için, durumun paylaşılması (çerezler, kimlik bilgisi depoları) genellikle arzu edilir, böylece passkey'e sorunsuz bir şekilde erişilebilir ve oluşturulabilir.)
| Özellik | WebView | Chrome Custom Tab |
|---|---|---|
| Kullanıcı deneyimi | - Esneklik: Web içeriğiyle etkileşim kurmak ve JavaScript diyalogları ve izin isteklerini işlemek de dahil olmak üzere kullanıcı etkileşimlerini yönetmek için zengin bir API seti sağlar. - Tutarlılık: Özellikle çeşitli web içerikleriyle tutarlı bir UX yönetmek zor olabilir. | - Tarayıcı Özellikleri: Data Saver ve cihazlar arasında senkronize edilen Otomatik Doldurma gibi özellikleri paylaşır. - Geri Düğmesi: Kullanıcıların entegre bir geri düğmesiyle kolayca uygulamaya dönmelerini sağlar. - Bağımlılık: Tüm kullanıcı cihazlarında mevcut veya güncel olmayabilecek Chrome uygulamasına dayanır - Tarayıcıya Yönlendirme: Belirli işlevler kullanıcıları Chrome uygulamasına yönlendirebilir ve bu da kullanıcı deneyimini potansiyel olarak bozabilir. - Kısmi Custom Tabs: Ekranın yalnızca bir kısmı Chrome Custom Tab için kullanılabilirken geri kalanı yerel uygulamayı gösterir - Yan sayfa: Manzara modunda ve büyük ekranlı cihazlarda, Chrome Custom Tab ekranın yalnızca bir tarafında görüntülenirken, ekranın geri kalanında yerel uygulama gösterilir. |
| Geliştirici deneyimi | - Yüksek Oranda Özelleştirilebilir: Kapsamlı özelleştirme seçenekleri/ihtiyaçları sunar. - Etkileşim: Web içeriğiyle etkileşim kurmak ve kullanıcı etkileşimlerini yönetmek için çok sayıda API sağlar. | - Özelleştirilebilir: Araç çubuğu rengi, eylem düğmesi, alt araç çubuğu, özel menü öğeleri ve giriş/çıkış animasyonlarının özelleştirilmesine olanak tanır. - Geri arama: Harici bir gezinme üzerine uygulamaya bir geri arama (callback) gönderir. - Güvenlik Özellikleri: Kutudan çıktığı gibi özellikler sağlar, istekleri, izin onaylarını veya çerez depolarını yönetme ihtiyacını ortadan kaldırır. |
| Performans | - Vasat Performans: Chrome Custom Tabs'in (CCT) aynı performans seviyesini sunmayabilir | - Ön Isıtma: Sayfa yükleme süresini artırmak için arka planda Tarayıcının önceden ısıtılmasını ve URL'lerin spekülatif yüklenmesini içerir. - Öncelik: Bir Custom Tab başlatan uygulamaların, önemini "ön plan" seviyesine yükselterek kullanımı sırasında bellekten atılmasını önler. |
| Güven ve tanınma | - URL ve SSL Görünür Değil: URL ve SSL bilgileri bir WebView'de doğası gereği görünür değildir. Uygulama geliştiricisi bu özellikleri uygulamadığı sürece, kullanıcılar doğru web sitesinde mi yoksa bir oltalama sitesinde mi olduklarını bilemezler. | - URL ve SSL Görünür: Sayfaları oluşturmak için gerçek Chrome tarayıcısını kullanır. Kullanıcılar URL'yi ve SSL sertifikasını (bağlantının güvenli olup olmadığını gösterir) görebilirler. Bu, kullanıcılara bir oltalama sitesinde olmadıklarına dair güven verebilir. |
| İzolasyon | - Uygulamanın Süreci İçinde Çalışır: Bir uygulamanın kötü amaçlı kod yürütülmesine izin veren bir güvenlik açığı varsa, WebView'in tehlikeye girme riski vardır. Ancak, WebView de güncellemeler alır, ancak davranışı ve güvenliği onu kullanan uygulamaya daha bağımlı olabilir. - Çerez / Oturum Paylaşımı Yok: Cihazın ana tarayıcısıyla çerezleri veya oturumları paylaşmaz, izolasyon sunar ancak kullanıcıların tekrar oturum açmasını gerektirebilir. | - Chrome'un Süreci İçinde Çalışır: Chrome'un bir parçası olarak, Custom Tabs aynı süreçte çalışır ve Chrome ile aynı güvenlik güncellemelerine ve özelliklerine sahiptir. - Paylaşılan Çerez Kavanozu ve İzin Modeli: Kullanıcıların sitelere yeniden giriş yapmaları veya izinleri yeniden vermeleri gerekmemesini sağlar. - Chrome Ayarları ve Tercihleri: Chrome'un ayarlarını ve tercihlerini kullanır. |
| Güvenlik açıkları | - Kimlik Bilgilerini Çalmak İçin Geri Aramalar: Potansiyel güvenlik açıkları arasında bazen JavaScript'in gerekli olması yer alır, bu da diğer uygulamaların kullanıcı adlarını ve parolaları yakalamaya çalışan geri aramalar kaydetmek gibi kötü amaçlı kod çalıştırmasına kapı açar. - Oltalama: Ek olarak, kötü amaçlı bir uygulama, bir oltalama girişiminde Link akışını taklit eden başka bir web sayfası açabilir. | - Google Güvenli Tarama: Hem kullanıcıyı hem de cihazı tehlikeli sitelerden korumak için Google'ın Güvenli Tarama özelliğini kullanır. - Güvenli Tarayıcı Dekorasyonu: Kullanıcının her zaman etkileşimde bulunduğu tam URL'yi görmesini ve web sitesinin sertifika bilgilerini görüntüleyebilmesini sağlar, bu da oltalama riskini azaltır. Ayrıca, özel sekmeler JavaScript enjeksiyonuna izin vermez. |
| Diğer | - Google, kullanıcıları Google hesaplarına giriş yapmak için WebView'ları yasakladı |
Hangi uygulama yaklaşımını seçerseniz seçin, passkey işlevselliğini etkinleştirmek için belirli teknik gereksinimlerin karşılanması gerekir. Bu bölüm, well-known ilişkilendirme dosyalarını, iOS yetkilendirmelerini ve Android WebView yapılandırmasını yapılandırma konusunda kapsamlı rehberlik sağlar.
Yönetilen Cihazlar Üzerine Not: Passkey davranışı, Mobil Cihaz Yönetimi (MDM) politikalarının kimlik bilgisi depolamasını kontrol ettiği yönetilen cihazlarda önemli ölçüde değişir. Yönetilen cihazlarda passkey'leri test etmek için bkz. Yönetilen iOS ve Android Cihazlarında Passkey'ler.
Yerel ve Gömülü WebView akışları, uygulamanız ve web alan adınız arasında kriptografik güven oluşturmak için ilişkilendirme dosyaları gerektirir. Sistem WebView (ASWebAuthenticationSession) ve Chrome Custom Tabs, uygulamadan siteye ilişkilendirme gerektirmez.
AASA dosyası, iOS uygulamanız ve web alan adınız arasındaki bağlantıyı kurarak passkey'lerin her iki platformda da çalışmasını sağlar.
Dosya Konumu: https://alanadiniz.com/.well-known/apple-app-site-association
Yapılandırma Gereksinimleri:
/.well-known/apple-app-site-association adresinde barındırınapplication/json.well-known yolunda yönlendirme olmamalıdırÖrnek AASA Dosyası:
{ "webcredentials": { "apps": ["TEAMID123.com.example.app"] } }
AASA Önbellekleme ve Test:
Apple, AASA dosyalarını (24-48 saate kadar) bir CDN kullanarak agresif bir şekilde önbelleğe alır, bu da geliştirme ve testleri zorlaştırabilir. Geliştirme sırasında önbelleğe almayı atlamak için:
?mode=developer ekleyin⚠️ Önemli: Üretim sürümlerinde ?mode=developer kullanmayın. Bu parametre yalnızca
geliştirme içindir - üretimde kullanmak, iOS'un AASA dosyanızı doğru bir şekilde
algılamasını engelleyerek passkey işlevselliğini bozar.
Doğrulama: Yapılandırmanızı doğrulamak için Apple'ın AASA Doğrulayıcısını kullanın.
Android, uygulamanız ve web siteniz arasındaki ilişkiyi doğrulamak için Digital Asset Links kullanır.
Dosya Konumu: https://alanadiniz.com/.well-known/assetlinks.json
Yapılandırma Gereksinimleri:
/.well-known/assetlinks.json adresinde barındırınapplication/jsonÖrnek assetlinks.json Dosyası:
[ { "relation": [ "delegate_permission/common.handle_all_urls", "delegate_permission/common.get_login_creds" ], "target": { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints": [ "AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99" ] } } ]
Doğrulama: Yapılandırmanızı oluşturmak ve doğrulamak için Google'ın Digital Asset Links Oluşturucusunu kullanın.
iOS uygulamaları, passkey işlevselliğine erişmek için uygun yetkilendirmelere ihtiyaç duyar. Gereksinimler, uygulama yaklaşımınıza göre biraz farklılık gösterir.
Yetkilendirme dosyası (genellikle Flutter
uygulamalarında Runner.entitlements veya yerel iOS projelerinde
UygulamaAdiniz.entitlements olarak adlandırılır), Apple'ın sistemi tarafından verilen
özel izinleri ve yetenekleri tanımlar. Passkey'ler için bu dosya, İlişkili Alan Adlarını
(Associated Domains) yapılandırır.
Dosya Konumu: Genellikle Xcode projenizde ios/Runner/Runner.entitlements adresinde
bulunur
Yerel Uygulama ve Gömülü WebView, uygulamanızı web alan adınızla ilişkilendirmek için İlişkili Alan Adları yeteneğini gerektirir. Sistem WebView (ASWebAuthenticationSession), Safari bağlamında çalıştığı için bunu gerektirmez.
Xcode'da Kurulum:
webcredentials: ön ekiyle ekleyinÖrnek Yapılandırma:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.developer.associated-domains</key> <array> <string>webcredentials:alanadiniz.com</string> <string>webcredentials:altalanadi.alanadiniz.com</string> </array> </dict> </plist>
| Yaklaşım | İlişkili Alan Adları Gerekli | Ek Yapılandırma |
|---|---|---|
| Yerel Uygulama | Evet | Özel Uygulama |
| Sistem WebView | Gerekli değil | Varsayılan web kurulumu çalışır |
| Gömülü WebView | Evet | AndroidX WebKit 1.12.1+ yapılandırması gerektirir |
Çoklu Alan Adları: Uygulamanızın birden fazla alan adıyla çalışması gerekiyorsa, İlgili Köken İstekleri (ROR) gerekebilir.
Android Gömülü WebView'lar, AndroidX WebKit 1.12 ile yerel WebAuthn desteği kazandı ve bu da özel JavaScript köprü kodu ihtiyacını ortadan kaldırdı. Sistem WebView (Chrome Custom Tabs) herhangi bir yapılandırma gerektirmez - kimlik bilgileri otomatik olarak çalışır.
Gereksinimler:
Uygulama:
import androidx.webkit.WebSettingsCompat import androidx.webkit.WebViewFeature // Web Authentication'ın desteklenip desteklenmediğini kontrol edin if (WebViewFeature.isFeatureSupported(WebViewFeature.WEB_AUTHENTICATION)) { // Web Authentication'ı etkinleştirin WebSettingsCompat.setWebAuthenticationSupport( webView.settings, WebSettingsCompat.WEB_AUTHENTICATION_SUPPORT_FOR_APP ) // JavaScript'i etkinleştirin webView.settings.javaScriptEnabled = true }
Anahtar Noktalar:
WebViewFeature.WEB_AUTHENTICATION kontrol edinmediation:"conditional" (giriş alanlarında passkey
otomatik doldurma) Gömülü WebView'de çalışmazSürüm Notları:
AndroidX WebKit 1.12.0'dan önce, Gömülü WebView'de yerel WebAuthn desteği yoktu. Ekipler şunlardan birini yapmak zorundaydı:
Eski Android sürümlerini veya güncellenmemiş WebView APK'larına sahip cihazları desteklemeniz gerekiyorsa, köprü kodu yaklaşımı için Android'in Credential Manager WebView Entegrasyon kılavuzuna bakın. Ancak, modern uygulamalar için yerel WebKit 1.12.1+ yaklaşımını kullanmanızı şiddetle tavsiye ederiz.
Öneri: AndroidX WebKit 1.12.1+ ile yerel WebAuthn desteğini kullanın. Çalışma zamanında mevcut değilse, paylaşılan kimlik bilgileriyle mükemmel passkey desteği sağlayan Chrome Custom Tabs'e geri dönün.
Yerel uygulamalarda passkey'leri uygularken, uygulamanız ve web alan ad(lar)ınız arasında güven oluşturmanız gerekir. Bu bölüm, tek bir alan adını, birden çok ilgili alan adını (ROR) nasıl yöneteceğinizi ve well-known ilişkilendirme dosyalarınızın doğru yapılandırılıp yapılandırılmadığını nasıl doğrulayacağınızı kapsar.
Tek bir alan adı kullanan uygulamalar için (ör. kayak.com), şunlara ihtiyacınız vardır:
webcredentials:kayak.com ile yapılandırılmış İlişkili Alan Adları yetkilendirmesiİlgili Kökenler (ROR), tek bir
passkey setinin birden çok ilgili alan adında (ör. kayak.com, kayak.de, kayak.co.uk)
çalışmasına olanak tanıyan bir WebAuthn özelliğidir.
ROR,
ilgili kökenleri tanımlamak için
her sitedeki /.well-known/webauthn uç noktasını kullanır, AASA veya assetlinks
dosyalarını DEĞİL.
Anahtar Noktalar:
/.well-known/webauthn'ı barındırırYapılandırma Örneği:
Uygulamanız kayak.com ve kayak.de ile çalışıyorsa, her iki alan adı da şunları
yapmalıdır:
Canlıya geçmeden önce, well-known dosyalarınızın doğru yapılandırıldığını ve erişilebilir olduğunu doğrulayın. Apple ve Google, dosya kullanılabilirliğini kontrol etmek için CDN tabanlı test URL'leri sağlar:
| Alan Adı | Apple AASA Doğrulaması | Google Digital Asset Links Doğrulaması |
|---|---|---|
| kayak.com | AASA dosyasını test et Apple CDN'nin dosyanızı alıp alamadığını kontrol edin | assetlinks.json'u test et Google'ın varlık bağlantılarınıza erişip erişemediğini doğrulayın |
| kayak.de | AASA dosyasını test et Apple CDN'nin dosyanızı alıp alamadığını kontrol edin | assetlinks.json'u test et Google'ın varlık bağlantılarınıza erişip erişemediğini doğrulayın |
Bu Test URL'lerini Kullanma:
?nocache=1 parametresi, CDN önbelleğini atlayarak yeni bir alım zorlarkayak.com veya kayak.de'yi kendi alan ad(lar)ınızla
değiştirinTest İpucu: Tüm alan adlarının doğru yapılandırılmış well-known dosyalarına sahip olduğundan emin olun. Herhangi bir alan adında eksik veya yanlış yapılandırılmış bir dosya, o alan adı için passkey işlevselliğini bozabilir.
Daha Fazla Bilgi: Yerel Uygulamalarda WebAuthn Relying Party ID
Doğru uygulama yaklaşımını seçmek, uygulamanızın kimlik doğrulama mimarisine, OAuth gereksinimlerine ve oturum kontrolü ihtiyacına bağlıdır. İleriye dönük en iyi yolu belirlemek için bu karar ağacını kullanın.
Bu anahtar sorularla başlayın:
Uygulamanız OAuth tabanlı oturum açma (OAuth2, OIDC, sosyal giriş sağlayıcıları) kullanıyor mu?
ASWebAuthenticationSession kullanınWeb kimlik doğrulamasını yerel benzeri bir kabukta (URL çubuğu yok, tam kullanıcı arayüzü kontrolü) yeniden kullanmak istiyor musunuz?
WKWebView + İlişkili Alan Adları yetkilendirmeleriWebView + AndroidX WebKit 1.12.1+ yapılandırmasıYeni bir yerel uygulama mı oluşturuyorsunuz veya yerel oturum açma ekranlarınız var mı?
Yeniden kullanmak istediğiniz mevcut web kimlik doğrulamanız var mı?
Her yaklaşımın anahtar boyutlarda nasıl performans gösterdiği aşağıda verilmiştir:
| Yaklaşım | Passkey Oluşturma | Passkey Kullanma | Passkey Yönetimi | Teknik Karmaşıklık | OAuth Desteği | Kurulum Süresi |
|---|---|---|---|---|---|---|
| Yerel Uygulama | Yüksek benimsenme Sorunsuz biyometrik, en iyi UX | Anında, sessizpreferImmediatelyAvailableCredentials uygulama başlangıcında otomatik katman sağlar | Tam yerel kontrol Uygulama ayarlarıyla entegre edin | Orta-Yüksek Platforma özgü API'ler | Ayrı bir OAuth akışı uygulaması gerektirir | Haftalar ila aylar |
| Sistem WebView | İyi benimsenme Tarayıcı benzeri deneyim, tanıdık | Standart tarayıcı UX Giriş alanlarında Koşullu Arayüz, paylaşılan anahtar zinciri | Tarayıcı tabanlı Kullanıcılar tarayıcı üzerinden yönetir | Düşük Minimal yerel kod | Mükemmel OAuth için özel olarak tasarlanmıştır | Günler ila haftalar |
| Gömülü WebView | Daha düşük benimsenme Yapılandırma gerektirir | Yerel WebAuthn desteği WebKit 1.12.1+, Koşullu Arayüz yok | Sınırlı kontrol Yerel entegrasyon yok | Orta-Yüksek WebView yapılandırması + izinler | Yapılandırma gerektirir | 1-2 hafta |
Boyut Açıklamaları:
Önerilen: Sistem WebView
Uygulamanız OAuth2, OIDC veya sosyal giriş sağlayıcıları (Google, GitHub, Microsoft, vb.) aracılığıyla kimlik doğrulaması yapıyorsa, Sistem WebView en uygun seçimdir:
ASWebAuthenticationSession OAuth akışları için özel olarak tasarlanmıştırÖrnek: kayak.com ve kayak.de gibi seyahat uygulamaları kimlik doğrulama için OAuth kullanır. Sistem WebView, web kimlik doğrulama sayfaları aracılığıyla passkey desteği eklerken mevcut OAuth altyapılarını korumalarına olanak tanır.
Önerilen: Hibrit Yaklaşım
İlk OAuth kimlik doğrulaması için Sistem WebView'ı kullanın, ardından kimlik doğrulaması sonrası oturumlar için Gömülü WebView'ı kullanın:
Ne zaman kullanılır: OAuth aracılığıyla kimlik doğrulaması yapan ancak daha sonra doğrudan oturum manipülasyonunun gerekli olduğu kimliği doğrulanmış web içeriğini görüntülemesi gereken uygulamalar.
Önerilen: Yerel Uygulama
Sıfırdan mı oluşturuyorsunuz veya yerel ekranlarınız mı var? Tamamen yerel gidin:
preferImmediatelyAvailableCredentials kullanın - yerel uygulamalara özeldir ve en
yüksek dönüşüm oranlarını sağlarYeni Uygulamalar İçin: İlk günden itibaren yerel oturum açma oluşturmanızı şiddetle tavsiye ederiz. Sizi optimal UX için hazırlar ve gelecekteki WebView'dan yerel uygulamaya geçişlerden kaçınır.
Önerilen: Aşamalı Geçiş
Bu aşamalı yaklaşım, mevcut kullanıcıları rahatsız etmeden artımlı iyileştirmelere olanak tanır.
| Gereksinim | Yerel | Sistem WebView | Gömülü WebView |
|---|---|---|---|
| Well-known dosyaları (AASA/assetlinks) | Gerekli | Gerekli değil | Gerekli |
| iOS İlişkili Alan Adları | Gerekli | Gerekli değil | Gerekli |
| Android WebKit Kütüphanesi | Uygulanamaz | Gerekli değil | Gerekli (1.12.1+) |
| Relying Party ID | Alan adıyla eşleşmeli | Alan adıyla eşleşmeli | Alan adıyla eşleşmeli |
Ayrıntılı yapılandırma talimatları için Bölüm 5'e bakın.
Yerel uygulamalarda passkey'leri test etmek, yapılandırılmış, çok katmanlı bir yaklaşım gerektirir. Test piramidini takip edin: birim testleri (izole mantık), entegrasyon testleri (simülatörlerde/emülatörlerde WebAuthn seremonisi) ve sistem testleri (fiziksel cihazlarda uçtan uca).
Temel Test Kategorileri:
Otomasyon stratejileri, platforma özgü püf noktaları ve eksiksiz bir uçuş öncesi kontrol listesi de dahil olmak üzere kapsamlı test rehberliği için özel kılavuzumuza bakın: Yerel iOS ve Android Uygulamalarında Passkey Akışlarını Test Etme.
Kullanıcıları geleneksel oturum açma (parola, OAuth) başarılı olduktan sonra passkey oluşturmaya teşvik etmeyi düşünün. Bu kademeli dönüşüm yaklaşımı:
Örnek: Sistem WebView aracılığıyla OAuth ile oturum açtıktan sonra, yerel bir istem gösterin: "Face ID ile daha hızlı oturum açmayı etkinleştirin mi?" Kabul edilirse, Sistem WebView'de yüklenen web sayfası aracılığıyla passkey oluşturun.
Passkey'leri nasıl uygulayacağınıza karar vermek - Yerel Uygulama, Sistem WebView veya Gömülü WebView aracılığıyla - güvenliği, kullanıcı deneyimini ve geliştirme karmaşıklığını etkileyen önemli bir tasarım seçimidir. Her duruma uyan tek bir cevap yoktur.
OAuth tabanlı uygulamalar için: Sistem WebView (ASWebAuthenticationSession, Chrome Custom Tabs) önerilen başlangıç noktasıdır. Mükemmel OAuth desteği, minimum uygulama çabası ve otomatik kimlik bilgisi paylaşımı sağlar.
Yerel odaklı uygulamalar için: Er ya da geç yerel uygulamaya geçin. Yerel bir passkey
ile oturum açma, WebView uygulamalarının sağlayamadığı
preferImmediatelyAvailableCredentials gibi özel yeteneklerle en sorunsuz kullanıcı
deneyimini sunar; bu özellik
uygulama başlangıcında otomatik passkey katmanı
sağlar. iOS ve Android'in artık passkey'ler için birinci sınıf destek sağlamasıyla, gerçek
dünya başarıları yüksek benimseme oranları göstermektedir. Araçlar (açık kaynaklı SDK'lar
ve platform kütüphaneleri dahil) yerel entegrasyonu makul zaman dilimlerinde
gerçekleştirilebilir kılmak için olgunlaşmıştır. Cihaz yönetimi politikalarını, cihazlar
arası senkronizasyonu ve üçüncü taraf sağlayıcıları göz önünde bulundurmanız gerekse de,
bu zorluklar dikkatli mühendislik ve testlerle yönetilebilir. Sonuç, kullanıcıları
kolaylığı ve hızıyla memnun eden ve güvenliği önemli ölçüde artıran bir uygulama oturum
açma deneyimidir.
Gömülü WebView çerçeve gereksinimleri için: Gömülü WebView, iki gerçek dünya senaryosunda yaygın olarak kullanılır. Birincisi, OAuth tabanlı uygulamalar genellikle ilk oturum açma akışı için Sistem WebView'ı kullanır, ardından oturum kontrolünün gerekli olduğu ayar ekranlarında passkey yönetim seçeneklerini oluşturmak için Gömülü WebView'a geçer - ancak bazı uygulamalar her iki akış için de Sistem WebView'ı kullanarak bunu basitleştirir. İkincisi, passkey'leri benimsemeden önce kimlik doğrulama akışlarını zaten WebView çerçevelerine gömmüş olan uygulamalar, tutarlılık için bu modeli sürdürür. Yerel WebAuthn destekli Gömülü WebView (AndroidX WebKit 1.12.1+), yapılandırma ve kurulum (izinler, yetkilendirmeler, WebView ayarları) gerektirir, ancak artık özel JavaScript köprü koduna ihtiyaç duymaz. Koşullu Arayüzün Gömülü WebView'de desteklenmediğini unutmayın. Mevcut gömülü kimlik doğrulama modellerini sürdürürken veya kimlik doğrulama sonrası ekranlar için oturum/çerez kontrolüne ihtiyaç duyduğunuzda bu yaklaşımı seçin.
Sonuç olarak, yerel uygulamalardaki passkey'ler hem kullanıcı rahatlığı hem de güvenlik açısından büyük bir sıçramayı temsil eder. İster Yerel, ister Sistem WebView, ister Gömülü WebView aracılığıyla uygulansın, kullanıcılarınız için oltalama (phishing) risklerini ve parola yönetimi yüklerini ortadan kaldırırlar. VicRoads'un yerel uygulama passkey entegrasyonu gibi gerçek dünya uygulamaları, otomatik passkey katmanları gibi özelliklerle doğru şekilde yürütüldüğünde yerel odaklı yaklaşımların en yüksek kullanıcı benimsemesini ve memnuniyetini sağladığını göstermektedir. Kullanıcı dostu kimlik doğrulama için en iyi uygulamaları takip ederek ve uygulamanızın mimarisine uyan uygulama yaklaşımını seçerek - yeni uygulamalar için yerel odaklı, OAuth akışları için Sistem WebView veya mevcut gömülü desenler için Gömülü WebView - herkes için basit, güvenli ve keyifli kimlik doğrulama olan parolasız, biyometrik oturum açma işlemleri sunabilirsiniz.
Passkey'ler yerel uygulamanızda çalışmıyorsa, uygulama yaklaşımına göre bu yaygın sorunları kontrol edin:
application/json.well-known yolunda yönlendirme yokhttps://alan-adiniz.com (app:// değil)webcredentials:alanadiniz.com ile İlişkili Alan Adları yeteneği
etkinleştirilmişASWebAuthenticationSession (önerilir) veya SFSafariViewController
kullanılıyor?mode=developer ile test edin (üretim için kaldırın)WebViewFeature.WEB_AUTHENTICATION için çalışma zamanı özellik kontrolüsetWebAuthenticationSupport() WEB_AUTHENTICATION_SUPPORT_FOR_APP ile
çağrılmış"NotAllowedError: İstek, mevcut bağlamda kullanıcı aracısı veya platform tarafından izin verilmiyor"
setWebAuthenticationSupport() çağrısıHiçbir passkey istemi görünmüyor
?mode=developer
kullanın, WebView türünü doğrulayınAyrıntılı hata ayıklama için, yerel uygulamalarda Relying Party ID'leri hakkındaki makalemize bakın.
Corbado Yerel SDK'ları:
Platform Dokümantasyonu:
Doğrulama Araçları:
Related Articles
Passkey Tutorial: How to Implement Passkeys in Web Apps
Vincent - December 7, 2023
The High-Level Architecture of an Integrated Passkey Flow
Janina - December 21, 2022
Table of Contents