Delphi WebAuthn Sunucusu

Delphi sunucunuza passkey tabanlı parolasız kimlik doğrulama ekleyin. WebAuthn Level 2 / FIDO2 kayıt ve kimlik doğrulama törenleri, attestation doğrulaması, kimlik bilgisi depolama kancaları.

TsgcWSAPIServer_WebAuthn

WebAuthn dayanak taraf (relying-party) sunucu tarafını uygular — kimlik bilgisi sorguları oluşturun, navigator.credentials yanıtlarını doğrulayın, attestation ifadelerini ayrıştırın ve assertion imzalarını doğrulayın.

Bileşen sınıfı

TsgcWSAPIServer_WebAuthn

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Enterprise

Dayanak tarafı bağlayın, kimlik bilgilerini saklayın

Bir TsgcWebSocketHTTPServer üzerine TsgcWSAPIServer_WebAuthn bırakın, WebAuthnOptions.RelyingParty değerini ayarlayın, ardından her yeni passkey'i saklamak için OnWebAuthnRegistrationSuccessful ve oturum açarken geri yüklemek için OnWebAuthnAuthenticationGetCredential olaylarını işleyin.

uses
  sgcWebSocket, sgcWebSocket_Server_APIs, sgcWebAuthn_Classes;

// Server: TsgcWebSocketHTTPServer and WebAuthn: TsgcWSAPIServer_WebAuthn are form fields
procedure TForm1.StartServer;
begin
  Server := TsgcWebSocketHTTPServer.Create(nil);
  Server.Port := 8443;
  Server.SSL  := True;
  Server.SSLOptions.CertFile := 'server.pem';
  Server.SSLOptions.KeyFile  := 'server.pem';
  Server.SSLOptions.Port     := 8443;

  WebAuthn := TsgcWSAPIServer_WebAuthn.Create(nil);
  WebAuthn.Server := Server;
  WebAuthn.WebAuthnOptions.RelyingParty := 'example.com';
  WebAuthn.OnWebAuthnRegistrationSuccessful := OnRegistrationSuccessful;
  WebAuthn.OnWebAuthnAuthenticationGetCredential := OnGetCredential;

  Server.Active := True;
end;

procedure TForm1.OnRegistrationSuccessful(Sender: TObject;
  const aRegistration: TsgcWebAuthn_Registration;
  const aCredentialRecord: TsgcWebAuthn_CredentialRecord; var Accept: Boolean);
begin
  // store the new passkey in your own database
  SaveCredential(aCredentialRecord.CredentialId, aCredentialRecord.AsJSON);
end;

procedure TForm1.OnGetCredential(Sender: TObject; const aCredentialId: string;
  const aCredentialRecord: TsgcWebAuthn_CredentialRecord; var Found: Boolean);
var
  vJSON: string;
begin
  // sign in: load the stored passkey back
  vJSON := LoadCredential(aCredentialId);
  Found := vJSON <> '';
  if Found then
    aCredentialRecord.ReadJSON(vJSON);
end;
// uses: sgcWebSocket, sgcWebSocket_Server_APIs
TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
TsgcWSAPIServer_WebAuthn *WebAuthn = new TsgcWSAPIServer_WebAuthn(this);
WebAuthn->Server = Server;
WebAuthn->WebAuthnOptions->RelyingParty = "example.com";
Server->Active = true;

İçeriğinde neler var

Bir Delphi sürecini passkey farkında bir kimlik doğrulama uç noktasına dönüştüren bir dayanak taraf sunucusu.

Kayıt töreni

OnWebAuthnRegistrationOptionsRequest, PublicKeyCredentialCreationOptions isteğini karşılar; tarayıcı navigator.credentials.create() çağırır; sunucu attestation'ı doğrular ve OnWebAuthnRegistrationSuccessful yeni kimlik bilgisi kaydını döndürür.

Kimlik doğrulama töreni

OnWebAuthnAuthenticationOptionsRequest, önceden saklanan kimlik bilgisi kayıtlarıyla PublicKeyCredentialRequestOptions'ı doldurur; sunucu saklanan genel anahtarı kullanarak assertion imzasını doğrular ve OnWebAuthnAuthenticationSuccessful'ı tetikler.

Attestation ayrıştırma

none, packed, fido-u2f, tpm, android-key, android-safetynet ve apple attestation ifadesi biçimlerini destekler.

Sayaç doğrulaması

Klonlanmış doğrulayıcıları algılamak için kimlik bilgisi başına signCount değerini izler. Sayaç gerilerse, OnWebAuthnAuthenticationError üzerinde işlem yapabileceğiniz bir hata bildirir.

Kullanıcı doğrulaması

UserVerification her tören için required, preferred veya discouraged olarak ayarlanabilir — doğrulama adımı bu seçimi zorlar.

Kimlik bilgisi kayıtları

OnWebAuthnAuthenticationOptionsRequest size isteği verir, böylece devam eden oturum açma için allowCredentials listesine doğru CredentialRecords'u döndürürsünüz. Depolamayı siz tasarlarsınız.

Spesifikasyonlar ve referanslar

Bu bileşenin uyguladığı standartlar için yetkili kaynaklar.

Kullanıcıların beklediği şekilde passkey'ler

Passkey, Windows Hello, iCloud Anahtarlığı, Google Şifre Yöneticisi veya bir güvenlik anahtarı tarafından tutulan keşfedilebilir bir WebAuthn kimlik bilgisidir. Sunucu, kimlik bilgileri kendi veritabanınızda kalırken passkey deneyiminin tamamını destekler.

Kullanıcı adı olmadan oturum açma

Kimlik doğrulama seçeneklerini bir kullanıcı adı olmadan isteyin. Tarayıcı, siteniz için sahip olduğu passkey'leri listeler, kullanıcı birini seçer ve sunucu döndürülen userHandle'ı denetler.

Passkey otomatik doldurma

Koşullu mediation ile passkey'ler kullanıcı adı alanının otomatik doldurma listesinde görünür. autocomplete="username webauthn" ekleyin ve /sgcWebAuthn.js'den startAuthentication(options, true)'ı çağırın.

Kullanıcı başına birden çok passkey

Bir passkey'i dizüstü bilgisayarda, bir diğerini telefonda kaydedin. Bir hesabın tüm passkey'leri tek bir kullanıcı tutamacını paylaşır ve kimlik doğrulama seçenekleri hepsini listeler.

Senkronize veya cihaza bağlı

Kimlik bilgisi kaydındaki BackupEligible ve BackupState, senkronize bir passkey'i cihaza bağlı bir güvenlik anahtarından ayırt eder; böylece tek cihazlı kullanıcılara ikinci bir passkey önerebilirsiniz.

Kendi veritabanınız

Kaydı OnWebAuthnRegistrationSuccessful içinde saklayın, kullanıcı adı olmadan veya otomatik doldurmayla yapılan bir oturum açmanın kimlik bilgisini OnWebAuthnAuthenticationGetCredential içinde arayın ve yeni sayacı OnWebAuthnAuthenticationSuccessful içinde kaydedin.

Klonlanmış doğrulayıcı algılama

İleri gitmeyen bir imza sayacı olası bir klon olarak reddedilir; oturumlar arasında değişen bir yedekleme uygunluğu bayrağı da öyle. Her zaman 0 bildiren senkronize passkey'ler çalışmaya devam eder.

Passkeys in Delphi: Passwordless Login With WebAuthn yazısını ve Passkeys yardım konusunu okuyun.

Belgeler ve Demolar

Bileşen referansına doğrudan bağlanın, kullanıma hazır demo projesini alın ve denemeyi indirin.

Çevrimiçi Yardım — TsgcWSAPIServer_WebAuthn Bu bileşen için tam özellik, metot ve olay referansı.
Demo Projesi — Demos\20.HTTP_Protocol\12.WebAuthn Kullanıma hazır örnek proje. sgcWebSockets paketi içinde gelir — aşağıdan denemeyi indirin.
Teknik Belge (PDF) Delphi ve C++ Builder için özellikler, hızlı başlangıç, kod örnekleri ve birincil kaynak referansları — yalnızca bu bileşen.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

Passkey Kimlik Doğrulaması Eklemeye Hazır mısınız?

Ücretsiz denemeyi indirin ve WebAuthn / FIDO2 passkey'leri Delphi sunucunuza getirin.