Document toolboxDocument toolbox

(v1.6) Settings - Configuration - Security

The Security screen allows the administrator to change the settings ensuring secure operation of the application. Namely the following:

Minimum password length

Minimum password length for both users and administrators. The length is enforced when entering a new password or when changing the existing one.

Password must contain

By checking the required character groups (lowercase and uppercase, digits, symbols) it is possible to increase the complexity of used passwords. The following characters are considered as symbols: ! @ # $ % ^ & *. The character groups are checked when entering a new password or when changing the existing one.

Password reset link lifetime

If the local user (see user types) has problems logging in and requests a password reset, a notification is sent to his email, containing a temporary single use token allowing him to set a new password. This setting specifies for how many minutes is this temporary token valid.

Password reset link lifetime (sent by admin)

If the administrator requests a password reset for some local user, a notification is sent to the user’s email, containing a temporary single use token allowing him to set a new password. This setting specifies for how many minutes is this temporary token valid.

Password reset link lifetime (new user creation)

When creating a new local user, the administrator can, instead of directly setting the user’s password, send a temporary single use token allowing the user to set his initial password. This setting specifies for how many minutes is this temporary token valid.

JWT token lifetime

After logging in a JWT token is issued to both users and administrators. It is then returned by the server in a HTTP cookie and is then always sent back by the browser in all requests to the server. The JWT token contains an expiration time, until which it is valid. If the server receives a token, which is already expired, the user is logged out. The JWT token is updated and the expiration time extended during every successful request to the server, so if the user is actively using the application, he will be never automatically logged out. This setting specifies this authentication token’s expiration time in seconds.

Simply said, this setting specifies after how long inactivity will the user be automatically logged out.

Secret for JWT token signing

After logging in a JWT token is issued to both users and administrators. The token is signed by the server’s private key and every received token is then check, if signed by this private key (this way it is ensured, the token was not changed outside the server). This key should be at least 32 characters long. Changing the key invalidates all issued JWT tokens and therefore results in logging out of all users and administrators. The key is stored on the server. For security purposes it must never leave the server, so it is not possible to display it, only change it by submitting a new one. The default key, if none was specified, is a string of random characters generated during the application installation.

Salt added to XSRF token

After logging in a JWT token is issued to both users and administrators. The JWT token contains among other things a XSRF token, which helps with protection against XSRF (Cross-site request forgery) attacks. XSRF token is a string of random characters appended with a secret key (“salt”). This setting sets this salt. Changing the salt invalidates all issued tokens and therefore results in logging out of all users and administrators. The salt is stored on the server. For security purposes it must never leave the server, so it is not possible to display it, only change it by submitting a new one. The default salt, if none was specified, is a string of random characters generated during the application installation.

reCAPTCHA secret key

Sets the reCAPTCHA secret key in case the reCAPTCHA anti-spam mechanism is used (see https://developers.google.com/recaptcha/intro). If not set, the reCAPTCHA will not be used.

reCAPTCHA site key

Sets the reCAPTCHA site key in case the reCAPTCHA anti-spam mechanism is used (see https://developers.google.com/recaptcha/intro). If not set, the reCAPTCHA will not be used.

reCAPTCHA score threshold

Sets the reCAPTCHA score threshold, specifying the score value above which a request is not considered spam (number from 0 to 1, see https://developers.google.com/recaptcha/docs/v3#interpreting_the_score). Default recommended value is 0.5.

Enable reCAPTCHA results logging

Enables or disables the logging of reCAPTCHA test results into the audit log. Should be enabled only temporarily during debugging of problems with sending of packages, because it may create a lot of log entries.

Enable repeated password guessing protection

If enabled, then in case of incorrect login attempts it will exponentially increase the time before allowing next login attempt. Up to the maximum time of 10 minutes between attempts.

If disabled, then there is no limit on login attempts. Therefore it should be always enabled for production use, otherwise the user accounts are open to rapid automated password guessing and possible account theft.

It is enabled by default.

Trusted proxies

The list of IP addresses (comma separated) of trusted proxies.

If the application is running behind a proxy (e.g. WAF like F5, FortiWeb, etc.), it cannot directly see the IP addresses of connected clients, because the clients connect to the proxy instead. It can only see the IP address of the proxy passing the requests to the application. All the audit logs and also settings limiting administrators' logins to selected IP addresses then work with this proxy IP address, which is usually not what we want.

If we fill in this setting with IP addresses of trusted proxies, which are passing the requests to the application, and they support adding the X-Forwarded-For header (which should be common), the application will ignore the IP addresses of these trusted proxies for the sake of audit logs and access control and will use the IP addresses of clients passed by these trusted proxies (and only by them) in the X-Forwarded-For header instead.