Delphi TOTP-tweefactorauthenticatie
Voeg een tweede factor toe aan elke login met de zescijferige codes van Google Authenticator, Microsoft Authenticator of Authy. Maak het secret aan, toon het als QR-code en verifieer de codes op je server.
Voeg een tweede factor toe aan elke login met de zescijferige codes van Google Authenticator, Microsoft Authenticator of Authy. Maak het secret aan, toon het als QR-code en verifieer de codes op je server.
Een non-visueel component dat tijdgebaseerde (RFC 6238) en tellergebaseerde (RFC 4226) eenmalige wachtwoorden implementeert. Het opent nooit zelf een verbinding, dus het werkt net zo goed in een loginformulier, een REST API of een WebSocket-server.
TsgcTOTPAuthenticator (unit sgcAuth_TOTP)
Windows, macOS, Linux, iOS, Android
Enterprise en All-Access, plus het sgcAuth-pakket. Ook beschikbaar in sgcWebSockets .NET.
Roep GenerateSecret één keer per gebruiker aan, toon GetProvisioningURI als QR-code, bewaar het secret en controleer elke code die bij het aanmelden wordt ingevoerd met VerifyCode.
uses
sgcAuth_TOTP;
var
TOTP: TsgcTOTPAuthenticator;
vSecret, vURI: string;
begin
TOTP := TsgcTOTPAuthenticator.Create(nil);
TOTP.Issuer := 'Example App';
// registratie: een nieuw Base32-secret en de otpauth://-URI voor de QR-code
vSecret := TOTP.GenerateSecret;
vURI := TOTP.GetProvisioningURI('alice@example.com', vSecret);
// bewaar vSecret bij het gebruikersrecord, render vURI als QR-code
// aanmelden: controleer de code die de gebruiker invoert
if TOTP.VerifyCode(vSecret, edtCode.Text) then
ShowMessage('Code accepted');
// eenmalige herstelcodes voor een verloren telefoon
TOTP.GenerateRecoveryCodes(memoRecovery.Lines, 10);
end;
// uses: sgcAuth_TOTP
TsgcTOTPAuthenticator *TOTP = new TsgcTOTPAuthenticator(this);
TOTP->Issuer = "Example App";
String Secret = TOTP->GenerateSecret();
String URI = TOTP->GetProvisioningURI("alice@example.com", Secret);
if (TOTP->VerifyCode(Secret, edtCode->Text))
ShowMessage("Code accepted");
TOTP->GenerateRecoveryCodes(memoRecovery->Lines, 10);
Alles wat een tweede factor nodig heeft, van de eerste QR-code tot het herstel van een verloren toestel. Het opslaan van de secrets blijft in jouw handen.
GenerateSecret geeft een willekeurig Base32-secret van SecretLength bytes terug (standaard 20). GetProvisioningURI bouwt de otpauth://totp/-URI op met Issuer, Algorithm, Digits en Period, klaar om als QR-code te renderen.
VerifyCode accepteert de huidige tijdstap en Window stappen ervoor of erna (standaard 1), zodat een telefoon waarvan de klok een paar seconden afwijkt nog steeds kan aanmelden.
De overload van VerifyCode met aLastTimeStep accepteert alleen een tijdstap die groter is dan de laatst gebruikte en geeft de gevonden stap terug, zodat een code nooit twee keer kan worden gebruikt.
GenerateHOTP en VerifyHOTP implementeren de tellergebaseerde variant voor hardwaretokens, met een look-ahead-venster dat de teller bij succes opnieuw synchroniseert.
GenerateRecoveryCodes vult elke TStrings met unieke eenmalige codes, de fallback voor wanneer de gebruiker het toestel met de authenticator-app kwijtraakt.
HMAC-SHA1 (de standaard die elke app ondersteunt), HMAC-SHA256 of HMAC-SHA512 via Algorithm, codes van 6 tot 8 Digits en elke gewenste Period.
Gezaghebbende bronnen voor de standaarden die dit component implementeert.
Diepe link naar de componentreferentie, pak het kant-en-klare demoproject en download de proefversie.
| Online help — TsgcTOTPAuthenticator Volledige property- en methodereferentie voor dit component. | Openen | |
| Demoproject — Demos\26.Authentication\02.TOTP Registratie met een QR-code, live codes, verificatie met replaybescherming en herstelcodes. Zit in het sgcWebSockets-pakket — download hieronder de proefversie. | Openen | |
| Technisch document (PDF) Functies, snelstart, codevoorbeelden voor Delphi en C++ Builder en primaire bronreferenties — alleen dit component. | Openen | |
| Gebruikershandleiding (PDF) Uitgebreide handleiding die elk component in de bibliotheek behandelt. | Openen | |
| Blog — Delphi-login met passkeys, SAML-SSO, LDAP en TOTP 2FA Hoe de zes authenticatiecomponenten samenwerken in één Delphi-toepassing. | Openen |