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.createvenavigator.credentials.get), Güvenli Bağlamlar tarafından sıkı bir şekilde korunur. Uygulamalar, üretimdehttps://, yerel geliştirme için isehttp://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.comiçin geçerlidir). Eşleşmeyenler, istemci tarafındaSecurityErroristisnaları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:
- Geçiş Anahtarı Kaydı: Geçiş Anahtarı Kaydı: Yeni geçiş anahtarı kaydı ve promosyonlar sunma.
- Geçiş Anahtarı Koşullu Oluşturma: Geçiş Anahtarı Koşullu Oluşturma (Giriş Sonrası Tanıtım): Şifreyle başarılı bir şekilde giriş yapıldıktan hemen sonra geçiş anahtarlarını sessizce kaydetme.
- Geçiş Anahtarı Kimlik Doğrulaması: Geçiş Anahtarı Kimlik Doğrulaması: Keşfedilebilir otomatik doldurma ve düğmeyle oturum açma.
- Hızlı Oturum Açma: Anında kullanıcı arayüzü moduyla hızlı oturum açma: Sayfada gezinmeden önce yerel geçiş anahtarları ve kayıtlı şifrelerle bağlamsal yerinde oturum açma.
- Geçiş Anahtarı Yönetimi: Geçiş Anahtarı Yönetimi: Listeleri, yeniden adlandırmaları ve silme işlemlerini şifre yöneticileriyle senkronize etme.
- Geçiş Anahtarı ile Yeniden Kimlik Doğrulama: Geçiş Anahtarı ile Yeniden Kimlik Doğrulama: Hassas adımlar için geri dönen oturum açmış kullanıcıları yeniden doğrulama.