At line 1 changed one line |
In CrushFTP version 9 we can integrate our One Time Password (__[OTP|OTP Settings]__) based authentication feature with Google's software based token device __Google Authenticator__ , using Time based OTP (TOTP). The server provides a 80-bit secret key , on a per user basis, as a QR code, that can be imported using Authenticator's QR reader.\\ |
CrushFTP has One Time Password (__[OTP/MFA|OTP Settings]__) based authentication feature with Authenticator software-based token device (__Google Authenticator__ and __Microsoft Authenticator__), etc, using Time based OTP (TOTP) / MFA. The user can register a QR code into their Authenticator app.\\ |
At line 3 changed 2 lines |
!!!Server side configuration\\ |
Will need to enable one of our __[OTP|OTP Settings]__ methods, using SMS or Mail based OTP, and enable the __Validated logins__ checkbox. The user needs to be able to log in at least once, using conventional __[OTP|OTP Settings]__.\\ |
!!1. Server side configuration\\ |
The config needs the URL set to __SMTP__ and the checkbox for __Validated Logins__ enabled.\\ |
At line 8 changed one line |
The second step is to configure the user account with __Two Factor Authentication__\\ |
Next enable the two factor __QR code generator__ which will appear in the user's __User Options__ menu when they are logged in.\\ |
At line 10 changed one line |
[attachments|servercfg002.png]\\ |
[attachments|enable_two_factor.png]\\ |
* You can also force two factor registration, then the user has no choice but to enroll in it at their next login. Set the customization flag __Two Factor: force Authenticator setup__ to true. See the mini animated gif of the process below.\\ |
At line 12 changed one line |
and enable the __QR code generator__ in it's __User Options__ menu\\ |
!!2. Client / token device configuration\\ |
The user will need to log in normally, generate the QR code from the client UI __User Options__ menu.\\ |
At line 14 changed one line |
[attachments|servercfg003.png]\\ |
[attachments|qr_otp.png]\\ |
At line 18 added 4 lines |
__This part must be done within 30 seconds or the QR code becomes invalid.__\\ |
1.) Once they are ready and have the Authenticator app open on their mobile device, they click __Ready To Scan__.\\ |
2.) Choose to scan the QR code, point the device towards the screen, and let it read in the QR code.\\ |
3.) Next click __Confirm__ to save the same code to the server's user configuration.\\ |
At line 17 changed one line |
!!!Client / token device configuration\\ |
Google Authenticator\\ |
[{Image src='tokencfg002.png' width='272px' height='..' align='left'}] [{Image src='tokencfg003.png' width='272px' height='..' align='left'}]\\ |
At line 19 changed one line |
The user will need to log in using conventional __[OTP|OTP Settings]__, generate the QR code form the client UI __User Options__ menu.\\ |
Microsoft Authenticator\\ |
[{Image src='IMG_2500.jpg' width='272px' height='..' align='left'}] [{Image src='IMG_2501.jpg' width='272px' height='..' align='left'}] [{Image src='IMG_2502.jpg' width='272px' height='..' align='left'}]\\ |
At line 21 changed one line |
[attachments|servercfg004.png]\\ |
__WARNING:__ the QR code is valid for 30 seconds, if the time window is missed you will need to generate new, or it will not save. Once a secret key has been saved from the QR code, and confirmed, it can only be reset by a server administrator. It's a one-time process.\\ |
At line 23 removed 3 lines |
Then open _Authenticator__ on the mobile device, set up new account, choose barcode, point the device towards the screen, read in the QR code.\\ |
\\ |
[{Image src='tokencfg001.png' width='272px' height='..' align='left'}][{Image src='tokencfg002.png' width='272px' height='..' align='left'}][{Image src='tokencfg003.png' width='272px' height='..' align='left'}]\\ |
At line 33 added 41 lines |
!!3. Possible scenarios regarding the cooperation of admin and the end-user:\\ |
\\ |
Prerequisites: |
\\ |
-a working Google Authenticator app on a mobile device\\ |
-in the User Manager -> user -> Webinterface -> Available customizations section the __Enable two factor registration__ is set to True. This can be enabled on the __default__ template account or on the group template account so all other users will inherit the setting from the template user.\\ |
-on Preferences -> General Settings -> OTP section the __Validated Logins__ option must be enabled (A on the first screenshot)\\ |
-for the 2nd option the user account has to be configured with an email address. Also, the server needs to have a working SMTP relay configured on Preferences -> General Settings -> SMTP section. |
|
|
1. This is the easiest method for the admin. |
The option of __Google Authenticator Auto Enable__ on Preferences -> General Settings -> OTP section is enabled (B on the first screenshot). |
In User Manager the __Two factor OTP/SMS authentication__ option is disabled. |
|
The end-user logs in with username and password, and initializes the __Setup of 2 factor auth__ via the User Options button, scans the QR code, and hits the Confirm button. |
In the background, CrushFTP writes the Two factor authentication Secret to the user account and takes care of enabling the __Two factor OTP/SMS authentication__ option for the user. |
|
2. |
The option of __Google Authenticator Auto Enable__ on Preferences -> General Settings -> OTP section is left in disabled state. |
In User Manager the __Two factor OTP/SMS authentication__ option is enabled by the admin. |
|
The end-user enters its username and password on the login page. A popup will be prompted asking for the email-based token, then the user is allowed to log in and initialize the Setup of 2 factor auth via the User Options button. Next time won't get an email, and at the token popup enters the 6-digit code generated by Google Authenticator. |
|
3. |
The option of __Google Authenticator Auto Enable__ on Preferences -> General Settings -> OTP section is left in disabled state. |
In User Manager the user doesn't have the __Two factor OTP/SMS authentication__ option enabled |
|
The end-user logs in with username and password, and initializes the Setup of 2 factor auth via the User Options button, scans the QR code, and hits the Confirm button. |
In the background, CrushFTP writes the Two-factor authentication Secret to the user account, but the Admin needs to activate the __Two factor OTP/SMS authentication__ option for the user. |
|
|
__[DMZ|DMZ]__ - Main node scenario: on Preferences -> General Settings -> OTP section the __Validated Logins__ option must be enabled on the DMZ node, so the DMZ gives the two-factor authentication to the Main node. |
\\ |
---- |
\\ |
Google Authenticator for Webinterface logins only, enrolling is not possible via FTP, SFTP. |
A hidden flag in __prefs.XML__ controls for which protocols OTP should be enabled by default |
{{{ |
<twofactor_secret_auto_otp_enable_protocols>ftp,ftps,sftp,http,https,webdav</twofactor_secret_auto_otp_enable_protocols> |
}}} |
\\ |