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ı.
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ı.
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.
TsgcWSAPIServer_WebAuthn
Windows, macOS, Linux, iOS, Android
Enterprise
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;
Bir Delphi sürecini passkey farkında bir kimlik doğrulama uç noktasına dönüştüren bir dayanak taraf sunucusu.
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.
OnWebAuthnAuthenticationOptionsRequest, önceden saklanan kimlik bilgisi kayıtlarıyla PublicKeyCredentialRequestOptions'ı doldurur; sunucu saklanan genel anahtarı kullanarak assertion imzasını doğrular ve OnWebAuthnAuthenticationSuccessful'ı tetikler.
none, packed, fido-u2f, tpm, android-key, android-safetynet ve apple attestation ifadesi biçimlerini destekler.
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.
UserVerification her tören için required, preferred veya discouraged olarak ayarlanabilir — doğrulama adımı bu seçimi zorlar.
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.
Bu bileşenin uyguladığı standartlar için yetkili kaynaklar.
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.
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.
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.
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.
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.
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.
İ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.
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ı. | Aç | |
| Demo Projesi — Demos\20.HTTP_Protocol\12.WebAuthn Kullanıma hazır örnek proje. sgcWebSockets paketi içinde gelir — aşağıdan denemeyi indirin. | Aç | |
| 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. | Aç | |
| Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz. | Aç |