sgcWebSockets WebAuthn Sunucusuna Derinlemesine Bakış

· Bileşenler

TsgcWSAPIServer_WebAuthn bileşeni, WebAuthn protokolünün relying-party (güvenen taraf) tarafını HTTPS üzerinden uygulayan bir Delphi/FPC sunucu modülüdür. TsgcWebSocketHTTPServer veya TsgcWebSocketServer ile entegre olur ve kayıt ile kimlik doğrulama için REST benzeri uç noktalar sunar. 

Uç Nokta Mekanikleri

Varsayılan olarak, bileşen rotaları /sgcWebAuthn altında kaydeder:

AmaçVarsayılan Uç NoktaAçıklama
Kayıt Seçenekleri/Registration/Optionsİstemci, navigator.credentials.create çağrısından önce bir challenge ve relying-party bilgisi ister
Kayıt Doğrulama/Registration/VerifyTarayıcı, sunucu doğrulaması için yeni kimlik bilgisini, attestation nesnesini ve istemci verilerini gönderir
Kimlik Doğrulama Seçenekleri/Authentication/OptionsSunucu, izin verilen kimlik bilgisi kimliklerinin bir listesini ve bir challenge sağlar
Kimlik Doğrulama Doğrula/Authentication/VerifyTarayıcı, doğrulama için assertion'ı (authenticatorData + imza) gönderir
JavaScript Yardımcısı/WebauthnStandart WebAuthn tarayıcı çağrılarını saran bir yardımcı betik sunar
Test Sayfası/TestGeliştirme sırasında API'yi denemek için hızlı bir HTML sayfası


Uç noktalar, mevcut yönlendirme şemalarına uyacak şekilde EndpointOptions aracılığıyla yeniden eşlenebilir. 

Temel Özellikler

  1. RelyingParty (RPID / RPName) – Kimlik bilgileri için mantıksal alan adını tanımlayan zorunlu DNS adı. Uygulamanızın geçerli alan adıyla eşleştiğinden emin olun.
  2. Origins ve TopOrigins – Geçerli kaynakların noktalı virgülle ayrılmış listeleri. Origins birincil alan adlarını kapsar; TopOrigins, iframe'lere gömülürken kullanılır.
  3. AllowCrossOriginsTrue olarak ayarlanırsa, çapraz kaynaklı (cross-origin) iframe'ler kimlik doğrulaması talep edebilir. Bu, özenle hazırlanmış bir TopOrigins ve sunucu tarafı doğrulama gerektirir.
  4. Algorithms – Desteklenen COSE algoritma tanımlayıcıları (örneğin ES256, RS256, EdDSA). Bu, sunucunun hangi açık anahtar türlerini kabul edeceğini kontrol eder.
  5. TimeoutMS – WebAuthn işlemlerini tamamlamak için istemciye önerilen zaman aşımı.
  6. UserVerification – Kullanıcı doğrulaması ilkesi (preferred, required, discouraged).
  7. Attestation – Attestation'ın none, indirect veya direct olup olmadığını belirtir. Doğrudan (direct) attestation, attestation sertifika zincirinin doğrulanmasını gerektirir.
  8. Metadata Service (MDS) – Etkinleştirildiğinde, bileşen, kimlik doğrulayıcı modelinin güvenilirliğini onaylamak için FIDO Metadata Service dosyalarına başvurur. Alanlar:
    • MDS_FileName – Yerel olarak önbelleğe alınmış JSON meta verileri (FIDO'dan indirilir).
    • RootCert_FileName – Meta veri imzalarını doğrulamak için kök sertifika.
  9. ChallengeOptions – Oluşturulan challenge'lar için özel uzunluk ve rastgelelik kaynağına izin verir.
  10. CredentialStorage – Doğrudan bir özellik olmasa da, bileşen, uygulamanın kimlik bilgisi açık anahtarlarını, imza sayaçlarını ve kullanıcı tanıtıcılarını (user handles) kalıcı olarak saklamasını bekler.

Olay Yaşam Döngüsü

Kayıt

Kimlik Doğrulama

Bu olaylar, seçenekleri oluşturmaktan assertion'ları işlemeye kadar protokolün her adımı üzerinde ince ayrıntılı kontrol sağlar.