Blog

All Blog Posts  |  Next Post  |  Previous Post

Two-Factor Authentication (2FA) in Delphi with TMS Sphinx

Wednesday, July 17, 2024

In today's digital landscape, ensuring robust security for user data is paramount. TMS Sphinx is a comprehensive framework tailored for Delphi developers, providing powerful tools for managing user authentication and authorization seamlessly. Whether you're building a new application or enhancing an existing one, TMS Sphinx equips you with the essential components to secure user interactions effectively.

Introducing Two-Factor Authentication (2FA) in TMS Sphinx

We are excited to announce that TMS Sphinx now supports Two-Factor Authentication (2FA), a critical feature designed to fortify your application's security. This blog post delves into the importance of 2FA, how it works, and guides you through implementing it using TMS Sphinx.

What is Two-Factor Authentication (2FA)?

Two-Factor Authentication (2FA) is an advanced security process that requires users to verify their identity through two distinct factors: something they know (a password) and something they have (a time-based one-time password or TOTP). This extra layer of protection ensures that even if a user's password is compromised, unauthorized access is still prevented.

Many of you might be familiar with 2FA through services like Google Authenticator, which generates a unique TOTP every 30 seconds. This code, in combination with the user's password, is required to log in, significantly reducing the risk of account breaches.

Why Use Two-Factor Authentication?

  1. Enhanced Security: 2FA adds an additional layer of security, making it significantly harder for unauthorized users to gain access to accounts.
  2. Protection Against Phishing: Even if a user's password is stolen, the attacker would still need the TOTP, which they wouldn't have access to.
  3. User Trust: Implementing 2FA shows your commitment to protecting user data, thereby increasing user trust and confidence in your application.
  4. Regulatory Compliance: Many regulations and standards now recommend or require 2FA for sensitive data access, ensuring your application complies with industry standards.

Enabling 2FA for Users in TMS Sphinx

Implementing 2FA in TMS Sphinx is straightforward and can be done in a few steps. Here's how you can enable it for your users:

  1. Retrieve the User Context:

    var
      Context: ISphinxContext;
    begin
      Context := SphinxServer1.CreateContext;
    end;

  2. Enable Two-Factor Authentication for the User:

    var
    User: TUser; AuthenticatorKey: string; begin User := Context.UserManager.FindByName('username'); if User = nil then raise Exception.Create('User not found'); User.TwoFactorEnabled := True; Context.UserManager.UpdateUser(User); if Context.UserManager.GetAuthenticatorKey(User) = '' then Context.UserManager.ResetAuthenticatorKey(User); AuthenticatorKey := Context.UserManager.GetAuthenticatorKey(User); Log('Two-factor QR code URI: ' + TOtpUri.Build(AuthenticatorKey, 'YourApp', User.UserName)); end;
  3. Generate and Share the QR Code: Provide the generated QR code URI to your users for scanning with their authenticator app.

How the QR Code URI Works

The QR code URI simplifies the process of setting up 2FA for users. When you generate a QR code using the URI, it encapsulates all the necessary information (such as the secret key, the account name, and the issuer) required by the authenticator app to generate TOTPs. Here’s how you can generate and use the QR code:

  • Generate the QR Code URI: The TOtpUri.Build method constructs a URI containing the secret key and other details.
  • Share the QR Code: This URI is then encoded into a QR code, which the user can scan with their authenticator app (like Google Authenticator or Authy).

When the user scans the QR code with their app, the app automatically configures itself with the necessary information to start generating TOTPs for that account. This means users don’t have to manually enter the secret key, reducing the risk of errors and making the setup process quick and user-friendly.

The 2FA Login Experience

Once 2FA is enabled, the user’s login experience will involve an additional step. After entering their password, users will be prompted to enter the TOTP generated by their authenticator app. This ensures that even if a password is compromised, unauthorized access is thwarted by the requirement of the second authentication factor.

TMS Software Delphi  Components

Conclusion

Integrating Two-Factor Authentication with TMS Sphinx elevates the security of your applications by adding an essential layer of verification. This not only protects against unauthorized access but also enhances user trust and compliance with industry standards.

We encourage you to explore the full capabilities of TMS Sphinx. Implement 2FA today and take a significant step towards securing your applications. For more details, refer to our documentation and download the trial version to get started.

Secure your applications with TMS Sphinx and ensure the highest level of protection for your users’ data.



Wagner Landgraf




This blog post has received 1 comment.


1. Thursday, July 18, 2024 at 2:57:05 PM

Note that Wagner Landgraf gives sessions on TMS XData & TMS Sphinx including this new added 2 factor authenication capability at the TMS Training Days on, Sept 26, 27 in Lille.
See all details & registration for this at https://tmstrainingdays.com

Bruno Fierens




Add a new comment

You will receive a confirmation mail with a link to validate your comment, please use a valid email address.
All fields are required.



All Blog Posts  |  Next Post  |  Previous Post