Delphi TOTP İki Faktörlü Kimlik Doğrulama

Google Authenticator, Microsoft Authenticator veya Authy'nin altı haneli kodlarıyla herhangi bir oturum açma işlemine ikinci bir faktör ekleyin. Gizli anahtarı oluşturun, QR kodu olarak gösterin ve kodları sunucunuzda doğrulayın.

TsgcTOTPAuthenticator

Zaman tabanlı (RFC 6238) ve sayaç tabanlı (RFC 4226) tek kullanımlık parolaları uygulayan görsel olmayan bir bileşen. Hiçbir zaman bağlantı açmaz, bu yüzden bir oturum açma formunda, bir REST API'sinde veya bir WebSocket sunucusunda aynı şekilde çalışır.

Bileşen sınıfı

TsgcTOTPAuthenticator (sgcAuth_TOTP birimi)

Platformlar

Windows, macOS, Linux, iOS, Android

Sürüm

Enterprise ve All-Access, ayrıca sgcAuth paketi. sgcWebSockets .NET içinde de mevcuttur.

Kullanıcıyı kaydedin, ardından kodları doğrulayın

Kullanıcı başına bir kez GenerateSecret çağırın, GetProvisioningURI'yi QR kodu olarak gösterin, gizli anahtarı saklayın ve oturum açarken girilen her kodu VerifyCode ile kontrol edin.

uses
  sgcAuth_TOTP;

var
  TOTP: TsgcTOTPAuthenticator;
  vSecret, vURI: string;
begin
  TOTP := TsgcTOTPAuthenticator.Create(nil);
  TOTP.Issuer := 'Example App';

  // enrolment: a new Base32 secret and the otpauth:// URI for the QR code
  vSecret := TOTP.GenerateSecret;
  vURI := TOTP.GetProvisioningURI('alice@example.com', vSecret);
  // save vSecret with the user record, render vURI as a QR code

  // sign in: check the code typed by the user
  if TOTP.VerifyCode(vSecret, edtCode.Text) then
    ShowMessage('Code accepted');

  // one-time recovery codes for a lost phone
  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);

İçeriğinde neler var

İlk QR kodundan kayıp bir cihazın kurtarılmasına kadar, ikinci bir faktörün ihtiyaç duyduğu her şey. Gizli anahtarların saklanması sizin elinizde kalır.

Gizli anahtarlar ve QR sağlama

GenerateSecret, SecretLength bayt uzunluğunda (varsayılan 20) rastgele bir Base32 gizli anahtarı döndürür. GetProvisioningURI, Issuer, Algorithm, Digits ve Period ile otpauth://totp/ URI'sini oluşturur; QR kodu olarak göstermeye hazırdır.

Saat kayması toleransı

VerifyCode, geçerli zaman adımını ve öncesinde veya sonrasında Window kadar adımı kabul eder (varsayılan 1), böylece saati birkaç saniye kayan bir telefon yine de oturum açabilir.

Tekrar oynatma koruması

aLastTimeStep ile VerifyCode aşırı yüklemesi yalnızca son kullanılandan büyük bir zaman adımını kabul eder ve eşleşen adımı döndürür, böylece bir kod asla iki kez kullanılamaz.

HOTP sayaçları

GenerateHOTP ve VerifyHOTP, donanım tokenleri için sayaç tabanlı varyantı uygular; başarı durumunda sayacı yeniden eşitleyen bir ileri bakış penceresiyle birlikte.

Kurtarma kodları

GenerateRecoveryCodes, kullanıcı kimlik doğrulayıcı uygulaması olan cihazı kaybettiğinde başvurulacak, benzersiz tek kullanımlık kodlarla herhangi bir TStrings'i doldurur.

Algoritmalar ve basamaklar

Algorithm üzerinden HMAC-SHA1 (her uygulamanın desteklediği varsayılan), HMAC-SHA256 veya HMAC-SHA512; 6 ila 8 Digits arasında kodlar ve istediğiniz Period.

Spesifikasyonlar ve referanslar

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

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: TsgcTOTPAuthenticator Bu bileşen için tam özellik ve metot referansı.
Demo Projesi: Demos\26.Authentication\02.TOTP QR kodu ile kayıt, canlı kodlar, tekrar oynatma korumalı doğrulama ve kurtarma kodları. sgcWebSockets paketi içinde gelir, denemeyi aşağıdan indirin.
Teknik Belge (PDF) Delphi ve C++ Builder için özellikler, hızlı başlangıç, kod örnekleri ve yalnızca bu bileşene ait birincil kaynak referansları.
Kullanıcı Kılavuzu (PDF) Kütüphanedeki her bileşeni kapsayan kapsamlı kılavuz.
Blog: Passkey, SAML SSO, LDAP ve TOTP 2FA ile Delphi Oturum Açma Altı kimlik doğrulama bileşeninin tek bir Delphi uygulamasında nasıl bir araya geldiği.
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

İki Faktörlü Kimlik Doğrulama Eklemeye Hazır mısınız?

Ücretsiz denemeyi indirin ve Delphi oturum açma işlemlerinizi kimlik doğrulayıcı uygulama kodlarıyla koruyun.