TOTP 2nd Factor Authentication (U2F)
Time based One Time Password (TOTP) is an algorithm that computes a one-time password from a shared secret key and the current time. This is currently what Google Authenticator or FreeOTP use.
LLNG can propose to users to register this kind of software to increase authentication level.
Note that it's a second factor, not an authentication module. Users are authenticated by both login form and TOTP.
Configuration
In the manager (advanced parameters), you just have to enable it:
TOTP ⇒ Activation: set it to “on”
TOTP ⇒ Self registration: set it to “on” if users are authorizated to generate themselves TOTP secret
TOTP ⇒ Authentication level: you can overwrite here auth level for TOTP registered users. Leave it blank keeps auth level provided by first authentication module (default: 2 for user/password based modules). It is recommended to set an higher value here if you want to give access to some apps only to users enrolled
TOTP ⇒ Issuer: default to portal hostname
TOTP ⇒ Interval: interval for TOTP algorithm (default: 30)
TOTP ⇒ Range: number of additional intervals to test (default: 1)
TOTP ⇒ Digits: number of digit of codes (default: 6)
TOTP ⇒ Display existing secret: display an already registered secret (default: disabled)
TOTP ⇒ Change existing secret: authorize a user to change its already registered TOTP secret
If you want to use a custom rule for “activation” and want to keep self-registration, you must include this in your rule that $_totp2fSecret
is set, else TOTP will be required even if users are not registered. This is automatically done when “activation” is simply set to “on”.
Enrollment
Assistance
If a user lost its key, you may remove it's persistent session using the session explorer.
Developer corner
If you have another TOTP registration interface, you have to populate session (using exported variables) to set these keys:
Name | Value |
_totp2fSecret | key handle value, base32 encoded |
_u2fUserKey | user key value, base64 encoded |