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ç Nokta | Açı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/Verify | Tarayıcı, sunucu doğrulaması için yeni kimlik bilgisini, attestation nesnesini ve istemci verilerini gönderir |
| Kimlik Doğrulama Seçenekleri | /Authentication/Options | Sunucu, izin verilen kimlik bilgisi kimliklerinin bir listesini ve bir challenge sağlar |
| Kimlik Doğrulama Doğrula | /Authentication/Verify | Tarayıcı, doğrulama için assertion'ı (authenticatorData + imza) gönderir |
| JavaScript Yardımcısı | /Webauthn | Standart WebAuthn tarayıcı çağrılarını saran bir yardımcı betik sunar |
| Test Sayfası | /Test | Geliş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
- 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.
- Origins ve TopOrigins – Geçerli kaynakların noktalı virgülle ayrılmış listeleri.
Originsbirincil alan adlarını kapsar;TopOrigins, iframe'lere gömülürken kullanılır. - AllowCrossOrigins –
Trueolarak ayarlanırsa, çapraz kaynaklı (cross-origin) iframe'ler kimlik doğrulaması talep edebilir. Bu, özenle hazırlanmış birTopOriginsve sunucu tarafı doğrulama gerektirir. - 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. - TimeoutMS – WebAuthn işlemlerini tamamlamak için istemciye önerilen zaman aşımı.
- UserVerification – Kullanıcı doğrulaması ilkesi (
preferred,required,discouraged). - Attestation – Attestation'ın none, indirect veya direct olup olmadığını belirtir. Doğrudan (direct) attestation, attestation sertifika zincirinin doğrulanmasını gerektirir.
- 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.
- ChallengeOptions – Oluşturulan challenge'lar için özel uzunluk ve rastgelelik kaynağına izin verir.
- 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
OnWebAuthnRegistrationOptionsRequest(Sender, Request, Response): Kullanıcı adını inceleyin, geçersizse iptal edin veya kullanıcı bilgilerini sağlayın.OnWebAuthnRegistrationOptionsResponse(Sender, Request, Response): İstemciye göndermeden önce challenge'ı değiştirin veya kimlik doğrulayıcı seçim kriterlerini ayarlayın.OnWebAuthnRegistrationVerify(Sender, Credential, var Success): Özel attestation kontrolleri gerçekleştirin veya kaydı veto edin.OnWebAuthnRegistrationSuccessful(Sender, Credential): Kimlik bilgisi kimliğini, açık anahtarı, imza sayacını ve kullanıcı tanıtıcısını veritabanınızda saklayın.OnWebAuthnRegistrationError(Sender, ErrorCode, ErrorMsg): Daha açıklayıcı hataları günlüğe kaydedin veya döndürün.
Kimlik Doğrulama
OnWebAuthnAuthenticationOptionsRequest(Sender, Request, Response): Kullanıcı adı için kimlik bilgisi kimliklerini arayın, izin verilen taşıma yöntemlerine (USB, NFC, BLE, dahili) karar verin.OnWebAuthnAuthenticationOptionsResponse(Sender, Request, Response):UserVerificationayarını özelleştirin, challenge uzunluğunu ayarlayın veya ek meta veriler gömün.OnWebAuthnAuthenticationVerify(Sender, Credential, var Success): İmza sayacı ilerlemesini doğrulayın, hesap durumu kontrollerini uygulayın.OnWebAuthnAuthenticationSuccessful(Sender, Credential): İmza sayacını güncelleyin ve oturum belirteçleri üretin.OnWebAuthnAuthenticationError(Sender, ErrorCode, ErrorMsg): İstek sınırlama, kilitleme ilkeleri ve denetim uygulayın.
Bu olaylar, seçenekleri oluşturmaktan assertion'ları işlemeye kadar protokolün her adımı üzerinde ince ayrıntılı kontrol sağlar.
