Geçiş anahtarlarıyla ilgili bilgilendirme

Web özellikleri: Web kimlik doğrulaması

Bu kılavuzda, modern web uygulamalarında güvenli, çerçeveden bağımsız geçiş anahtarı kimlik doğrulamasını ve kimlik bilgisi yönetimini uygulamaya yönelik yoğun ve eyleme dayalı bilgiler verilmektedir.

1. Geçiş Anahtarları İçin Temel Ön Koşullar

Geçiş anahtarları, Web Authentication API'yi (WebAuthn) kullanır. Bu API, herhangi bir uygulama girişiminden önce karşılanması gereken katı ve kapsamlı güvenlik kısıtlamaları uygular:

  • Güvenli Bağlamlar: WebAuthn yöntemleri (navigator.credentials.create ve navigator.credentials.get), Güvenli Bağlamlar tarafından sıkı bir şekilde korunur. Uygulamalar, üretimde https://, yerel geliştirme için ise http://localhost üzerinde ÇALIŞMALIDIR.
  • Bağlı Taraf (RP) Kimliği: Her kimlik bilgisi bir RP kimliğine (temelde uygulamanın alan adı) bağlıdır. Sunucu tarafı seçeneklerinde iletilen RP kimliği, mevcut kaynağın alan adıyla eşleşmeli veya geçerli bir son eki olmalıdır (ör. example.com, login.example.com için geçerlidir). Eşleşmeyenler, istemci tarafında SecurityError istisnalarına neden olur.

2. AAGUID kullanıcı deneyimi uyarısı

Authenticator Attestation Globally Unique Identifier (AAGUID), kayıt onay verilerinde döndürülen ve kimlik doğrulayıcının modelini/sağlayıcısını (ör. Google Şifre Yöneticisi, iCloud Anahtar Zinciri, 1Password) temsil eden 128 bitlik bir benzersiz tanımlayıcıdır.

  • Yalnızca Kullanıcı Deneyimi İpuçları: Güvenen Taraflar, AAGUID'yi yalnızca kullanıcı deneyimi ipuçları için KULLANMALIDIR (ör. kullanıcıya yardımcı olmak için geçiş anahtarı sağlayıcı adını ve simgesini bir yönetim listesinde gösterme).
  • Güvenlik Bağımlılığı Yok: Uygulamalar, kriptografik güvenlik veya erişim kararları için AAGUID'yi KULLANMAMALIDIR. Platform geçiş anahtarları şu anda AAGUID'leri için kriptografik onay sağlamaz. Bu nedenle, kullanıcı aracıları tarafından değiştirilebilir veya simüle edilebilir.

3. Ayrılmış Kitaplık Önerileri

Geliştiriciler, arka uç FIDO2/WebAuthn seçenekleri oluşturma ve imza doğrulama için kriptografiyi manuel olarak uygulamak yerine her dil için onaylanmış açık kaynak kitaplıkları KULLANMALIDIR:

  • JavaScript/TypeScript: SimpleWebAuthn (github.com/MasterKale/SimpleWebAuthn)
  • Python: py_webauthn (github.com/duo-labs/py_webauthn)
  • Java: Java WebAuthn Server (github.com/Yubico/java-webauthn-server), WebAuthn4J (github.com/webauthn4j/webauthn4j)
  • .NET: FIDO2 için .NET kitaplığı (github.com/abergs/fido2-net-lib)
  • Go: WebAuthn Go Kitaplığı (github.com/go-webauthn/webauthn)
  • Ruby: WebAuthn Ruby (github.com/cedarcode/webauthn-ruby)
  • PHP: WebAuthn Framework (github.com/web-auth/webauthn-framework)

4. Kullanım Alanı Referans Matrisi

Aşağıda eşleşen kullanım alanını belirleyin ve tam uygulama kılavuzunu alın. Her kullanım alanında yalnızca kullanım alanına özel kılavuzda belgelenen kritik API'ler (PublicKeyCredential.parseCreationOptionsFromJSON, parseRequestOptionsFromJSON, signalAllAcceptedCredentials, signalCurrentUserDetails, signalUnknownCredential, koşullu uyumlulaştırma, AAGUID işleme vb.) bulunur. Bu alma adımını ATLAMAYIN ve istemcide üçüncü taraf kitaplık sarmalayıcılarını (ör. SimpleWebAuthn'un startAuthentication/startRegistration) KULLANMAYIN. Yerel WebAuthn tarayıcı API'lerini doğrudan çağırın. Bölüm 3'teki kitaplık önerileri yalnızca sunucu tarafı (arka uç FIDO2 doğrulaması) için geçerlidir.

Geçiş anahtarı ve WebAuthn uygulamasıyla ilgili ayrıntılar aşağıdaki kılavuzlarda açıklanmıştır: