adidas, Koşullu Oluşturma ve Signal API ile geçiş anahtarı kullanımını ve güvenilirliğini nasıl artırdı?

Christopher Kokott
Christopher Kokott
Yu Tsuno
Yu Tsuno

Küçük harflerle yazılmış adidas marka adının üzerinde, ikonik üç çizgili siyah adidas logosu.

Kuruluşlar ve geliştiriciler, kullanıcıları şifrelerden geçiş anahtarlarına taşırken önemli bir engelle karşılaşıyor. Geçiş anahtarları önemli bir güvenlik yükseltmesi sunsa da manuel oluşturma süreci genellikle sorunlara yol açabilir. Yüksek hacimli bir e-ticaret ortamında, her saniyelik tereddüt önemlidir. Çünkü herhangi bir gecikme, satın alma yolunu kesintiye uğratabilir ve alışveriş sepetini terk etmeye yol açabilir. Ayrıca, oturum açma hatalarını ve kullanıcıların hayal kırıklığına uğramasını önlemek için kimlik bilgisi durumlarının sunucu ile kullanıcının cihazı arasında senkronize tutulması gerekir.

adidas da tam olarak bu zorluklarla karşılaştı. Asıl hedefleri, giriş sürecindeki sorunları ortadan kaldırmak ve web ile uygulama platformları ve cihazlardaki deneyimi basitleştirmekti. Güvenlik her zaman öncelikli bir konu olsa da ürün ekibi, geçiş anahtarlarıyla kaydolma ve oturum açma akışlarını olabildiğince sorunsuz hale getirmeye odaklandı.

adidas, bu zorlukların üstesinden gelmek için Koşullu Oluşturma'yı uygulayarak şifre kullanıcılarını otomatik olarak geçiş anahtarlarına yükseltti ve Signal API'yi kullanarak kimlik bilgilerinin tutarlı kalmasını sağladı. Ayrıca, gerektiğinde alanlar arası kullanımı desteklemek için İlgili Kaynak İstekleri'ni de kullanıma sundular.

Sonuçlar

adidas'ın geçiş anahtarı oluşturma sürecini otomatikleştirme ve kimlik bilgisi sağlığını koruma stratejisi, hem geçiş anahtarı kullanımında hem de oturum açma güvenilirliğinde anında ve ölçülebilir sonuçlar verdi:

  • Yüksek benimseme oranı: adidas, geçiş anahtarıyla oturum açma sürecini kullanıma sunduğundan beri %47 oranında genel geçiş anahtarı oluşturma oranı elde etti. Buna hem otomatik koşullu oluşturma hem de kayıt veya oturum açma akışları sırasında istenen kullanıcı tarafından başlatılan kayıtlar dahildir. Bu özellik, özellikle mobil cihazlarda yüksek oranda kullanıldı. Mobil cihazlarda dönüşüm oranı% 52 (masaüstünde% 34) oldu.
  • Koşullu oluşturma kullanılarak hızlandırılmış yükseltmeler: Açık istemlerin ötesinde, adidas, mevcut şifre kullanıcılarını arka planda sorunsuz bir şekilde yükselterek ve manuel kullanıcı işlemi gerektirmeden geçiş anahtarı oluşturma sayısında % 8 artış elde etti.
  • Neredeyse mükemmel oturum açma güvenilirliği: Geçiş anahtarları, oturum açma işlemi başlatıldıktan sonra %99'dan yüksek başarı oranı sağladı. Bu, adidas'ın geçmişteki %70'lik şifre başarı oranına kıyasla büyük bir güvenlik yükseltmesidir. Bu oran, yazım hataları veya unutulan kimlik bilgileri gibi insan kaynaklı hatalar nedeniyle genellikle düşüyordu.
  • Sürtünme ve hatalar en aza indirildi: adidas, cihaz ve sunucu kimlik bilgilerini otomatik olarak senkronize etmek için Signal API'yi dağıtarak PASSKEY_NOT_FOUND hatalarını oturum açma girişimlerinin %0,3'ünden daha az bir oranda tutmayı başardı. Bu sayede, artık duruma düşen geçiş anahtarlarının neden olduğu kullanıcı hayal kırıklığı etkili bir şekilde ortadan kaldırıldı.

    47 %

    Geçiş anahtarı oluşturma oranı

    8 %

    Koşullu oluşturma kullanılarak oluşturulan geçiş anahtarlarında artış

    >99 %

    Başlatıldıktan sonra geçiş anahtarıyla oturum açma başarı oranı

    <0,3 %

    Bağlantısı kaldırılmış geçiş anahtarı hata oranı

adidas sorunu nasıl çözdü?

adidas bu zorlukları nasıl ele aldı?

1. Koşullu oluşturma ile benimseme sürecini hızlandırın

adidas, kullanıcıların geçiş anahtarlarını sorunsuz bir şekilde kullanmaya başlamasına yardımcı olmak için Koşullu Oluşturma'yı (Conditional Create) uyguladı. Bu özellik, bir kullanıcının şifre yöneticisinde depolanan bir şifreyle oturum açtığında web sitesinin otomatik olarak geçiş anahtarı oluşturmasına olanak tanır. En yüksek başarı oranını elde etmek için sistem, oturum açma işlemi başarılı olduktan hemen sonra API'yi çağırır. Böylece sistem, şifre kullanımını yeni olarak tanır.

const cred = await navigator.credentials.create({
  publicKey: options,
  mediation: 'conditional' // Enables automatic passkey creation
});

adidas, bu özelliği önce kullanıcının ortamını doğrulayan özel bir mantıkla entegre etti. Sistem, özellikle Koşullu Oluşturma özelliğinin tarayıcı tarafından desteklenip desteklenmediğini kontrol eder. Sistem, kullanıcının son altı ay içinde geçiş anahtarı oluşturma işlemini üç kez atlaması durumunda istemi bastırarak kullanıcı tercihlerine de saygı gösterir.

Ortam uyumluysa sistem, başarılı kullanıcı kimlik doğrulamasından hemen sonra arka planda geçiş anahtarı oluşturmaya çalışır. Bu özel zamanlama, ön koşulların karşılanma olasılığını artırır. En önemlisi, uygulama, kullanıcı erişimine her zaman öncelik vermek için WebAuthn istisnalarını "başarısız olsa da erişime izin ver" felsefesiyle ele alır. Tarayıcı, geçiş anahtarının zaten mevcut olduğunu belirten bir InvalidStateError bildirirse sistem, arka planda oluşturma işlemini durdurur ve kullanıcıyı hemen oturum açar. Aksine, NotAllowedError oluşursa (yani otomatik oluşturma için gerekli koşullar karşılanmamışsa) sistem bu durumu algılar ve kullanıcıyı manuel kurulum sürecinde yönlendirmek için "Geçiş Anahtarı Toplayıcı" ekranına yönlendirir. adidas, bu teknik kısıtlamalar ile kullanıcı davranışları arasında ayrım yaparak geçiş anahtarı yükseltmelerinin teşvik edilmesinin oturum açma deneyimini kesintiye uğratmak yerine iyileştirmesini sağlar.

Adidas web sitesinde, kullanıcıları biyometri veya şifre kodu kullanarak daha hızlı ve güvenli oturum açmak için geçiş anahtarı oluşturmaya teşvik eden &quot;Bir dahaki sefere geçiş anahtarıyla oturum açın&quot; istemi.
"Geçiş anahtarı toplayıcı" ekranı.

2. Signal API ile güvenilirliği sağlama

Kullanıcılar kimlik bilgilerini cihazlar arasında yönetirken tutarsızlıklar oluşabilir. Örneğin, geçiş anahtarı sunucudan silinebilir ancak kullanıcının cihazında kalabilir. adidas, bu "hayalet" kimlik bilgilerinden kaynaklanan oturum açma hatalarını önlemek için Signal API'yi uyguladı. Bu API, sunucunun kimlik bilgilerinin durumunu geçiş anahtarı sağlayıcıya bildirmesine olanak tanır.

adidas, bu tutarlılığı korumak için mevcut üç Signal API yöntemini de kullanır. adidas, hangi kimlik bilgilerinin kaldırılacağını tahmin etmek yerine belirli kullanıcı yaşam döngüsü etkinliklerini uygun API çağrısıyla eşler:

  • Kayıt hataları: İstemcide oluşturulan ancak arka uçta kaydedilemeyen geçiş anahtarları için adidas, üst öğesi olmayan kimlik bilgilerini hemen kaldırmak üzere signalUnknownCredential kullanır.
  • Geçersiz oturum açma işlemleri: Kullanıcı, iptal edilmiş veya eski bir geçiş anahtarıyla oturum açmaya çalışırsa signalUnknownCredential, sağlayıcıya geçiş anahtarını gizlemesi için sinyal gönderir.
  • Kullanıcı yönetimi: Bir kullanıcı, hesap ayarlarında geçiş anahtarını açıkça kaldırdığında signalAllAcceptedCredentials, izin verilenler listesini senkronize eder. Bu işlem, silinen geçiş anahtarının artık sunulmamasını sağlar.
  • Hesap güncellemeleri: Bir kullanıcı e-posta adresini veya kullanıcı adını değiştirdiğinde, signalCurrentUserDetails cihazdaki meta verileri sunucuyla eşleşecek şekilde günceller.
// Detect authentication failure due to lack of the credential

if (result.status === 404) {
  if (PublicKeyCredential.signalUnknownCredential) {
    await PublicKeyCredential.signalUnknownCredential({
      rpId: "adidas.com",
      credentialId: "..." // base64url encoded credential ID
    });
  }
}
adidas hesap ayarlarında, kullanıcının belirli bir geçiş anahtarını kaldırmasına olanak tanıyan bir onay kalıcı öğesi gösterilir. Bu kalıcı öğede, geçiş anahtarının artık oturum açmak için kullanılamayacağı uyarısı yer alır.
Geçiş anahtarını kaldırma işlemini onaylamak üzere kalıcı öğe.
Google Şifre Yöneticisi&#39;nden, artık çalışmayan bir &quot;Silinen geçiş anahtarı&quot; olduğunu belirten bir bildirim. Signal API&#39;nin, kullanıcının cihazını sunucuyla nasıl senkronize tuttuğunu gösterir.
Silinen geçiş anahtarı için Signal API bildirimi.

adidas, çok pazarlı mimarisini daha fazla desteklemek için İlgili Kaynak İstekleri'ni uyguladı. Çoğu kullanıcı yerel pazarında kalırken (ör. adidas.nl) bu yapılandırma, bölgeler arasında gezinirken tek bir bağlı taraf kimliği (adidas.com) hedefleyerek izin verilen alanlarda geçiş anahtarlarını yeniden kullanmalarına olanak tanır.

adidas, bu özelliği etkinleştirmek için birincil Relying Party ID (RP ID) alanında bir webauthn yapılandırma dosyası barındırır. Bu dosya, geçiş anahtarı kaydı ve kimlik doğrulama için adidas.com kullanmasına izin verilen kaynakların açık bir izin verilenler listesini içerir. Bu ilişkileri tanımlayarak tarayıcı, bir bölgesel sitede oluşturulan geçiş anahtarının başka bir sitede kullanılabileceğini doğrulayabilir ve böylece dünya genelindeki kullanıcılara sorunsuz bir deneyim sunar.

// https://www.adidas.com/.well-known/webauthn

{
  "origins": [
    "https://www.adidas.fi",
    "https://www.adidas.nl",
    // ... abridged (the full file lists 50+ regional domains)
  ]
}

Önemli bir nokta olarak, adidas, Digital Asset Links'i kullanarak Android mobil uygulamalarında sorunsuz geçiş anahtarı desteği de sağladı. Uygulamalar kimlik doğrulama için idp.adidas.com adresinde barındırılan bir WebView kullandığından, Android uygulaması ile Relying Party kimliği (adidas.com) arasında güvenilir bir ilişki oluşturmak için Digital Asset Links gerekiyordu. Bu doğrulama, uygulamanın web'de kullanılan geçiş anahtarlarına erişmesine olanak tanıyarak platformlar arasında sorunsuz ve birleşik bir oturum açma deneyimi oluşturur.

adidas, bu amaçla ilgili web alanlarında bir Digital Asset Links (assetlinks.json) dosyası barındırır. Bu dosya, Android uygulamalarıyla olan kriptografik ilişkiyi herkese açık olarak beyan eder. Benzer şekilde, adidas da iOS ekosistemini desteklemek için ilişkili alanları kullanıyor. apple-app-site-association dosyası barındırarak güvenli bir bağlantı oluştururlar. Bu bağlantı, iOS uygulamalarının web görünümünde geçiş anahtarlarını güvenli bir şekilde kullanmasına olanak tanır.

// https://www.adidas.fi/.well-known/assetlinks.json

[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target": {
      "namespace": "android_app",
      "package_name": "com.adidas.app",
      "sha256_cert_fingerprints": [
        "B2:55:43:78:89:F6:F6:FD:BB:16:5C:43:EE:66:14:18:D4:E8:33:6D:3A:1F:68:86:C3:A8:7C:89:2B:51:45:96",
        "..."
      ]
    }
  },
  // ... abridged
]
Bir istemci cihaz ile hedef sunucu arasında, İlgili Kaynak İstekleri (ROR) ve Digital Asset Links (DAL) aracılığıyla kurulan güven ilişkilerini gösteren teknik bir sıralı işlem şeması.
İlgili Kaynak İsteklerinin Sıra Şeması
Android cihazda, kullanıcıdan adidas kimlik sağlayıcısında oturum açmak için kayıtlı geçiş anahtarını kullanmasını isteyen sistem düzeyinde bir geçiş anahtarı istemi.
Koşullu oturum açma
adidas mobil uygulamasının, kolaylaştırılmış bir kimlik doğrulama deneyimi için özel bir &quot;geçiş anahtarıyla devam et&quot; düğmesi içeren giriş ekranı.
Önce tanımlayıcı

adidas'ı gelecekte neler bekliyor?

adidas.fi ve adidas.nl'de otomatik yükseltmeler ve senkronize edilmiş kimlik bilgilerinden oluşan sağlam bir temel sayesinde adidas, bu kolay kurulumu Nisan 2026'nın sonuna kadar diğer tüm küresel pazarlarda kullanıma sunacak. Ayrıca adidas, anında uyumlulaştırma kaynağı denemesini test ederek daha da sorunsuz oturum açma deneyimleri sunmayı planlıyor. Gelecekteki planlar arasında kullanıcıların doğrudan geçiş anahtarlarıyla hesap oluşturmasına izin vermek de yer alıyor. Bu değişiklik, önce alternatif bir yöntemle kaydolma zorunluluğunu ortadan kaldırır. Ekip, oturum açma işleminin ikinci adımında sistem geçiş anahtarı iletişim kutusunu doğrudan çağırmak için "akıllı tetikleme" özelliğini de araştırıyor. Kullanıcının mevcut cihazında geçiş anahtarı bulunduğundan emin olunduğu durumlarda ek bir tıklama yapılmasına gerek kalmaz.

Bu sizin için neden önemli?

Parolasız kimlik doğrulamaya geçiş, kullanıcı deneyimi sorunsuz kaldığında başarılı olur. Koşullu oluşturma özelliğini uygulayarak kullanıcıları alışkanlıklarını bozmadan şifrelerden kolayca taşıyabilirsiniz. İlgili Kaynak İstekleri'ni kullanarak bu geçiş anahtarlarını alanlarınızda paylaşabilir ve kullanıcıların tek bir geçiş anahtarıyla tüm ekosisteminize sorunsuz bir şekilde erişmesini sağlayabilirsiniz. Son olarak, bu API'yi Signal API ile eşleştirmek, birleştirilmiş ve şifresiz deneyiminizin güvenilir ve hatasız kalmasını sağlar.

Daha fazla bilgi