WebAuthn Server

· Özellikler

sgcWebSockets 2025.4.0 Enterprise sürümünden itibaren  WebAuthn Protokolü desteklenir (şu anda BETA aşamasında). 

WebAuthn (Web Authentication), web üzerinde güvenli, parolasız kimlik doğrulamayı mümkün kılmak için World Wide Web Consortium (W3C) ve FIDO Alliance tarafından geliştirilen bir web standardıdır. Daha geniş FIDO2 çatısının bir parçasıdır ve genellikle kimlik avına, kimlik bilgisi doldurmaya ve diğer saldırılara karşı savunmasız olan geleneksel parolalara bağımlılığı azaltmayı amaçlar.

WebAuthn, özünde kullanıcıların ortak anahtarlı kriptografi kullanarak kimlik doğrulamasına olanak tanır. Kullanıcılar, bir kullanıcı adı ve parola yerine, bir web uygulamasına (Relying Party) benzersiz bir ortak-özel anahtar çifti kaydeder. Özel anahtar, donanım güvenlik anahtarı, akıllı telefon veya yerleşik biyometrik cihaz gibi bir kimlik doğrulayıcıda güvenli bir şekilde saklanırken, ortak anahtar sunucuda saklanır.

Kimlik doğrulama sırasında, sunucu kullanıcının özel anahtarıyla imzalanması gereken bir challenge yayınlar. İmzalanmış challenge geri döndürülür ve saklanan ortak anahtar kullanılarak doğrulanır; bu, yanıtın hem bütünlüğünü hem de kaynağını güvence altına alır. Bu yaklaşım, kimlik bilgilerinin ele geçirilmesini veya yeniden kullanılmasını önler.

WebAuthn, çeşitli kimlik doğrulayıcıları ve cihazları destekler, bu da onu hem geliştiriciler hem de kullanıcılar için esnek hale getirir. Ayrıca, PIN'ler veya biyometri gibi diğer faktörlerle birleştirildiğinde çok faktörlü kimlik doğrulamayı (MFA) mümkün kılar ve kullanılabilirlikten ödün vermeden güvenliği önemli ölçüde artırır.

Desteklenen Attestation Biçimleri

Farklı attestation biçimleri, bu verilerin nasıl yapılandırıldığını ve doğrulandığını tanımlar. Yaygın olarak kullanılan üç biçim android-key, packed ve fido-u2f, apple veya none gibi diğerleridir. Varsayılan olarak tüm attestation biçimleri etkindir; desteklenen attestation biçimlerinin listesini aşağıda bulabilirsiniz:


WebAuthn Akışı


WebAuthn Sunucu Bileşeni

TsgcWSAPIServer_WebAuthn bileşeni, WebAuthn Relying Party sunucusunu uygulamak için basit ama güçlü bir çözüm sunar ve web uygulamanızda parolasız kimlik doğrulamayı mümkün kılar. Bir WebAuthn uygulaması, sunucu tarafı kaydı ve kimlik doğrulamayı yöneten bir WebAuthn sunucusundan ve genellikle bir javascript uygulaması olan bir istemci tarafı uygulamasından oluşur.


WebAuthn Sunucusunun basit bir yapılandırmasını aşağıda bulabilirsiniz:


  // ... create the servers
  HTTPServer := TsgcWebSocketHTTPServer.Create(nil);
  WebAuthnServer := TsgcWSAPIServer_WebAuthn.Create(nil);
  WebAuthnServer.Server := HTTPServer;
  // ... enable for testing
  WebAuthnServer.EndpointsOptions.Test.Enabled := True;
  // ... WebAuthn options
  WebAuthnServer.WebAuthnOptions.RelyingParty := 'localhost';
  // ... bindings
  Server.Port := 443;
  HTTPServer.SSLOptions.Port := 443;
  HTTPServer.Bindings.Clear;
  With HTTPServer.Bindings.Add do
  begin
    Port := 443;
    IP := '127.0.0.1';
  end;
  HTTPServer.SSLOptions.Certificate := 'sgc.pem';
  HTTPServer.SSLOptions.KeyFile := 'sgc.pem';  
  HTTPServer.SSL := True;
  // ... active
  HTTPServer.Active := True; 

Delphi WebAuthn Sunucu Demosu

Aşağıdaki Delphi WebAuthn Demosu, yeni bir kimlik bilgisinin nasıl kaydedileceğini ve ardından kullanıcının kimliğini doğrulamak için nasıl kullanılacağını gösterir.