User Management
NetXMS has a built-in user management system that controls access to the monitoring infrastructure. This page covers how to create user accounts and groups, configure authentication methods, and set up access control.
For reference tables (access rights, configuration variables, certificate mapping), see User Management Reference.
Creating Users
To create a new user:
-
Open the management client
-
Navigate to Configuration > Users and groups
-
Right-click and select Create new user…
-
Enter the login name
-
Check Define additional properties to open the property pages, where the full name, authentication method, password, and group membership are set
Each user account has the following properties:
-
Login name — unique identifier for authentication
-
Full name — display name
-
Description — optional description
-
Authentication method — one of Local password, RADIUS password, Certificate, Certificate or local password, Certificate or RADIUS password, or LDAP password
-
System access rights — global permissions (see System Access Rights Reference)
-
Group membership — user can belong to multiple groups
Default Administrator Account
The default administrator account has the login admin (user ID 1).
During database initialization, nxdbmgr init generates a random password for this account and prints it to the console; alternatively, a specific password can be set with the -p option of nxdbmgr init.
Record the generated admin password during installation — it is displayed only once.
|
The admin account receives its access rights through membership in the Admins group and, like any regular account, can be deleted — only the system account (user ID 0) and the Everyone group are protected from deletion.
The database also contains two additional built-in accounts: anonymous (user ID 2) and ai-operator (user ID 3).
Superuser Account
NetXMS has a built-in superuser account with internal ID 0 and login name system.
This account is disabled by default.
It is used internally by the server for operations that require full system access (scheduled tasks, background jobs, etc.).
To allow interactive login with this account, run nxdbmgr reset-system-account, which unlocks it and sets a new random password (printed to the console).
The superuser account:
-
Always has full access to all objects (hardcoded); its system access rights are taken from its database record
-
Cannot be deleted
-
Should remain disabled unless specifically needed for recovery or troubleshooting
Account Lockout
NetXMS can automatically lock accounts after repeated failed login attempts.
Configure lockout through the Server.Security.IntruderLockoutThreshold and Server.Security.IntruderLockoutTime server variables.
See Account Lockout Variables for details.
A locked account can be unlocked from the command line with nxdbmgr unlock-user <login>.
Password Policy
NetXMS enforces password policies through server configuration variables, such as Server.Security.MinPasswordLength and Server.Security.PasswordExpiration.
These policies apply to locally-authenticated users (not LDAP or RADIUS).
See Password Policy Variables for all available settings.
Users can be marked with User must change password at next logon to force an immediate password change.
User Groups
Groups simplify permission management by allowing you to assign access rights to a group instead of individual users.
Built-in groups:
-
Admins— full system access. Members have all system rights. -
Everyone— all authenticated users are automatically members. By default the group carries a small set of system rights: view event templates, view all alarms, and use the AI assistant.
To create a custom group:
-
Navigate to Configuration > Users and groups
-
Right-click and select Create new group…
-
Add members from existing user accounts
How to Configure LDAP Integration
NetXMS can synchronize users and groups from an LDAP directory (Active Directory, OpenLDAP, etc.). Configure LDAP integration through server configuration variables (see LDAP Configuration Variables).
Active Directory Example
LDAP.ConnectionString = ldap://dc01.example.com:389
LDAP.SyncUser = [email protected]
LDAP.SyncUserPassword = service_password
LDAP.SearchBase = OU=Users,DC=example,DC=com
LDAP.SearchFilter = (&(|(objectClass=user)(objectClass=group))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
LDAP.UserClass = user
LDAP.GroupClass = group
LDAP.Mapping.UserName = sAMAccountName
LDAP.Mapping.FullName = displayName
LDAP.UserUniqueId = objectGUID
LDAP.GroupUniqueId = objectGUID
LDAP.SyncInterval = 60
OpenLDAP Example
LDAP.ConnectionString = ldap://ldap.example.com:389
LDAP.SyncUser = cn=admin,dc=example,dc=com
LDAP.SyncUserPassword = admin_password
LDAP.SearchBase = dc=example,dc=com
LDAP.SearchFilter = (objectClass=*)
LDAP.UserClass = inetOrgPerson
LDAP.GroupClass = groupOfNames
LDAP.Mapping.UserName = cn
LDAP.Mapping.FullName = displayName
LDAP.UserUniqueId = entryUUID
LDAP.GroupUniqueId = entryUUID
LDAP.SyncInterval = 1440
Synchronization
When LDAP sync runs, NetXMS:
-
Queries the LDAP directory for users and groups matching the filters
-
Creates new NetXMS users/groups for any LDAP entries not already present
-
Updates attributes (full name, description, group membership) for existing entries
-
Disables or deletes NetXMS users whose LDAP accounts have been removed (controlled by
LDAP.UserDeleteAction)
Synchronization only removes LDAP-synced users that are no longer present in the directory. Non-LDAP users added manually to LDAP-synchronized groups are left untouched.
LDAP-synced users are marked with the LDAP flag and authenticate against the LDAP directory. The authentication is transparent to the user — they use their LDAP username and password to log in.
To trigger a manual sync, use the server debug console:
ldapsync
LDAP Troubleshooting
If LDAP synchronization does not work as expected:
-
Enable LDAP debug logging by setting the debug tag
ldapto level 7 in the server configuration:DebugTags = ldap:7 -
Check the server log for LDAP-related messages. Common issues include:
-
Connection errors: Verify
LDAP.ConnectionStringis reachable and the port is correct. Forldaps://, ensure the server’s SSL certificate is trusted. -
Authentication errors: Verify
LDAP.SyncUserandLDAP.SyncUserPassword. For Active Directory, use UPN format ([email protected]) or full DN. -
Empty results: Check
LDAP.SearchBaseandLDAP.SearchFilter. Use an LDAP browser (such as Apache Directory Studio) to verify the filter returns expected results. -
Users not created: Verify
LDAP.UserClassmatches the actual object class in your directory. -
Group membership not synced: Verify
LDAP.GroupClassis correct and that the group objects are within theLDAP.SearchBasescope.
-
-
Use the server debug console to run an immediate sync and observe the results:
ldapsync
How to Configure Two-Factor Authentication
NetXMS supports two-factor authentication (2FA) for additional login security. Two drivers are available: TOTP (Time-based One-Time Password) and Message (notification channel-based).
System-Wide 2FA Setup
Before users can use 2FA, at least one 2FA method must be configured at the system level:
-
Navigate to Configuration > Two-factor authentication methods
-
Create a new 2FA method
-
Select the driver:
-
TOTP — generates time-based one-time passwords using applications like Google Authenticator, Microsoft Authenticator, or FreeOTP
-
Message — sends a one-time code through a configured notification channel (SMS, email, Telegram, etc.)
-
-
For the Message driver, select the notification channel from the Notification channel drop-down in the method configuration
-
Save the method
Multiple 2FA methods can be configured. Users will be able to choose which method to use during login.
Per-User 2FA Configuration
To enable 2FA for a user:
-
Navigate to Configuration > Users and groups
-
Open the user’s properties
-
Go to the Authentication property page and find the Two-factor authentication methods group
-
Add one or more 2FA method bindings
-
For the Message method, specify the recipient (phone number, email address, etc.) and the message subject
-
For the TOTP method, no additional configuration is needed at this step
When 2FA is configured for a user, they will be prompted for a second factor on their next login.
TOTP Initialization
When a user with TOTP 2FA logs in for the first time after TOTP is configured:
-
The server generates a secret key and presents a QR code
-
The same enrollment data is also shown as text (an
otpauth://URI containing the secret) for manual entry -
The user scans the QR code or enters the secret into their TOTP application
-
The user enters the generated numeric code to confirm correct setup
-
On subsequent logins, the user enters the current TOTP code from their application
Resetting TOTP
If a user loses access to their TOTP application:
-
An administrator opens the user’s properties in Configuration > Users and groups
-
In the Two-factor authentication methods group on the Authentication property page, reset the TOTP binding
-
On the user’s next login, they will be presented with a new QR code and secret to set up their TOTP application again
2FA Enforcement
Two-factor authentication can be enforced at the group level: enable the Enforce two-factor authentication for group members option in a group’s properties to require 2FA for all its members.
Alternatively, setting the Server.Security.2FA.EnforceForAll server configuration variable enforces 2FA for every user regardless of group membership.
Individual users can be excluded from enforcement with the Exempt from two-factor authentication enforcement flag in their account properties (useful for service accounts).
How to Configure RADIUS Authentication
NetXMS supports RADIUS as an external authentication method.
When RADIUS authentication is selected for a user, passwords are sent to a RADIUS server for validation.
Access is granted when the server responds with Access-Accept.
Configure RADIUS through server configuration variables (see RADIUS Configuration Variables).
To enable RADIUS for a user, set their authentication method to RADIUS password in the user properties dialog. Users can also be configured with Certificate or RADIUS password authentication, which attempts certificate validation first and falls back to RADIUS.
How to Configure Certificate Authentication
NetXMS supports certificate-based authentication using X.509 client certificates. This method can be used with smart cards or software certificates stored in the operating system’s certificate store.
Login Process
Certificate-based login works as follows:
-
Server sends a random challenge to the client
-
Client signs the challenge using the private key associated with the certificate
-
Client sends the signed challenge and the public part of the certificate back to the server
-
Server validates the certificate against configured trusted CA certificates
-
Server verifies the challenge signature using the certificate’s public key
-
Server maps the certificate to a NetXMS user account using the configured mapping method
-
If the mapping matches, access is granted
Trusted CA Certificates
For certificate authentication to work, the CA certificate that issued the client certificate must be added to the server’s trusted certificate store.
CA certificates are configured using the TrustedCertificate parameter in the server configuration file (netxmsd.conf):
TrustedCertificate = /path/to/ca-certificate.pem
Multiple TrustedCertificate entries can be specified to trust certificates from multiple CAs.
User Configuration
To configure a user for certificate authentication:
-
Open the user’s properties in Configuration > Users and groups
-
Set the authentication method to one of: Certificate, Certificate or local password, or Certificate or RADIUS password
-
Select the certificate mapping method — Subject, Public key, or Common name (see Certificate Mapping Methods)
-
Enter the certificate mapping data
-
Save the user properties
When using Certificate or local password or Certificate or RADIUS password, the server first attempts certificate validation. If no certificate is presented or validation fails, it falls back to the alternative method.
How to Configure CAS Authentication
The NetXMS server can validate Central Authentication Service (CAS) tickets for single sign-on. The bundled management clients do not offer CAS login; the mechanism is intended for custom integrations built on the client library, which accepts an SSO ticket in place of a password.
Configure CAS integration through server configuration variables (see CAS Configuration Variables).
How to Configure UI Access Rules
UI access rules allow administrators to hide specific user interface elements from users or groups. This controls which perspectives, views, and UI components are visible in the management client.
| UI access rules control visibility only. They are not a security mechanism — users with appropriate system or object access rights can still perform operations through the API or nxshell even if the corresponding UI element is hidden. |
Rule Format
UI elements are identified using the format category:name.
Common categories include:
-
perspective:name(short formp:name) — management client perspectives (e.g.,perspective:objects.maps) -
view:name(short formv:name) — views and tabs within perspectives (e.g.,view:objects.fdb) -
*:name— matches elements of the given name in any category
Rules support GLOB-style wildcards:
-
*matches all UI elements -
perspective:*matches all perspectives
A rule can be prefixed with ! to exclude the matched elements, or with ^ to create a priority inclusion that overrides exclusion rules.
See UI Access Rule Evaluation for prefix types and evaluation order.
Default Configuration
By default, both the Everyone and Admins groups have the inclusion rule *, which makes all UI elements visible to all users.
To restrict UI access, adjust these default rules and add specific rules per group or user (removing only the Everyone rule still leaves members of Admins unrestricted).
perspective:objects.dashboards
perspective:alarms
*
!perspective:configuration
How to Configure Audit Logging
NetXMS logs all significant user actions to an audit log. Two logging modes are available and can be used simultaneously.
Internal Audit Log
The internal audit log stores records in the NetXMS database. It is enabled by default and viewable through the management console under Logs > Audit.
External Audit Log
For compliance or integration with centralized log management, audit records can be sent to an external syslog server via UDP.
To enable external audit logging, set AuditLog.External.Server to the hostname or IP address of your syslog server.
Both internal and external logging can be active simultaneously.
See Audit Log Variables for all configuration options.
Each audit record includes:
-
Timestamp
-
Subsystem identifier
-
Success or failure indicator
-
User ID
-
Workstation address
-
Session ID
-
Object ID (if applicable)
-
Action description
-
Old and new values (for configuration changes)
-
HMAC of the record content for tamper detection — populated only when a signing key is configured with the
AuditLogKeyparameter innetxmsd.conf; empty by default
Authentication Tokens
Authentication tokens allow logging in without a password — as Bearer tokens for the web API, with the -token option for management client autologin (see below), and in any integration built on the client library.
Each user can manage their own tokens: open the user menu in the management client and select Authentication tokens…. The dialog lists the user’s tokens (ID, description, creation and expiration time) and provides Issue New… and Revoke buttons. When issuing a token, set a description and expiration time; the token value is displayed only once, with a button to copy it to the clipboard — it cannot be retrieved later.
Administrators can manage any user’s tokens on the Authentication Tokens property page of the user’s properties in Configuration > Users and groups.
Tokens issued this way are persistent: they are stored (hashed) in the database and survive server restarts until they expire or are revoked. Integrations using the API can also request single-use tokens, which are invalidated on first successful use.
How to Configure Autologin
The management client supports automatic login using a pre-configured login token. This is useful for kiosk displays, NOC screens, and unattended dashboards.
Configuring Autologin
-
Create a dedicated user account with minimal permissions (read-only access to necessary dashboards)
-
Start the management client with autologin parameters as command-line arguments:
nxmc -auto -server=<server_address> -login=<username> -password=<password>
nxmc -auto -server=<server_address> -token=<token>
A login token identifies the user, so no login name or password is needed; when both -token and -password are given, whichever comes last on the command line takes effect.
The same settings can be supplied as JVM system properties instead of command-line arguments: netxms.server, netxms.login, netxms.password, netxms.token, and netxms.autologin.
Security Considerations for Autologin
Autologin with -password stores credentials in the command line, which may be visible to other users on the system.
Prefer token-based autologin.
|
Best practices:
-
Create a dedicated account with minimal permissions for each autologin deployment
-
Restrict the account to read-only access on specific dashboards
-
Use token-based autologin instead of embedding a password
-
Avoid using administrative accounts for autologin