WebAuthn / 通行密钥
为您的 Delphi 服务器添加基于通行密钥的无密码身份验证。WebAuthn Level 2 / FIDO2 注册和认证仪式、证明验证、凭据存储钩子。
为您的 Delphi 服务器添加基于通行密钥的无密码身份验证。WebAuthn Level 2 / FIDO2 注册和认证仪式、证明验证、凭据存储钩子。
实现 WebAuthn 依赖方服务器端 — 创建凭据挑战、验证 navigator.credentials 响应、解析证明声明并验证断言签名。
TsgcWSAPIServer_WebAuthn
Windows, macOS, Linux, iOS, Android
Enterprise
将 TsgcWSAPIServer_WebAuthn 放置于 TsgcWebSocketHTTPServer 上,配置 RpId/RpName,然后处理 OnRegistrationVerify 和 OnAuthenticationVerify 以持久化凭据。
uses
sgcWebSocket, sgcWebSocket_Server_APIs;
var
Server: TsgcWebSocketHTTPServer;
WebAuthn: TsgcWSAPIServer_WebAuthn;
begin
Server := TsgcWebSocketHTTPServer.Create(nil);
Server.Port := 8443;
Server.SSL := True;
WebAuthn := TsgcWSAPIServer_WebAuthn.Create(nil);
WebAuthn.Server := Server;
WebAuthn.RelyingParty.Id := 'example.com';
WebAuthn.RelyingParty.Name := 'Example RP';
WebAuthn.OnRegistrationVerify := procedure(Sender: TObject;
const aRequest: TsgcWebAuthn_RegistrationVerify_Request;
const aRegistration: TsgcWebAuthn_Registration; const aError: string)
begin
// 存储 aRegistration.CredentialId / publicKey / counter / userHandle
end;
Server.Active := True;
end;
// uses: sgcWebSocket, sgcWebSocket_Server_APIs
TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
TsgcWSAPIServer_WebAuthn *WebAuthn = new TsgcWSAPIServer_WebAuthn(this);
WebAuthn->Server = Server;
WebAuthn->RelyingParty->Id = "example.com";
WebAuthn->RelyingParty->Name = "Example RP";
Server->Active = true;
将 Delphi 进程变为通行密钥感知身份验证端点的依赖方服务器。
OnRegistrationOptions 颁发 PublicKeyCredentialCreationOptions;浏览器调用 navigator.credentials.create();OnRegistrationVerify 验证证明并返回新凭据记录。
OnAuthenticationOptions 颁发带有先前存储凭据 ID 的 PublicKeyCredentialRequestOptions;OnAuthenticationVerify 使用存储的公钥验证断言签名。
支持 none、packed、fido-u2f、tpm、android-key、android-safetynet 和 apple 证明声明格式。
跟踪每个凭据的 signCount 以检测克隆的身份验证器 — 如果计数器回退,OnAuthenticationVerify 将报告您可以处理的错误。
UserVerification 可按仪式设置为 required、preferred 或 discouraged — 验证步骤强制执行该选择。
OnAuthenticationOptions 提供用户句柄,使您能为进行中的登录返回正确的 allowCredentials 列表 — 存储方式由您自行设计。
本组件所实现标准的权威来源。