
[[ga-user-config]]
= User Creation and Configuration
:description: How to create users and user schedules in {page-component-title}.


Only a user with admin privileges can create users and assign security roles.
We recommend creating a new user with admin privileges instead of using the default `admin` user profile (see <<quick-start/users.adoc#ga-admin-user-setup, Admin user setup>>).

Ideally, each user account corresponds to a single person.
This helps track who performs tasks in your {page-component-title} instance.
Assigning different <<deep-dive/user-management/security-roles.adoc#ga-role-user-management-roles, security roles>> to each user helps restrict what tasks the user can perform.

In addition to local users, you can configure external authentication services including https://opennms.discourse.group/t/spring-security-and-ldap/1425[LDAP and LDAPS], https://opennms.discourse.group/t/spring-security-and-radius/1424[RADIUS], and https://opennms.discourse.group/t/single-sign-on-sso-using-spring-security-and-kerberos/[Single Sign On] (SSO).
Specific configuration instructions for these services are outside the scope of this documentation.

WARNING: Do not delete the default `admin` and `rtc` user profiles.
The start page uses the `rtc` profile to communicate with the xref:development:rest/rtc.adoc[Real-Time Console] to calculate node and service availability.

[[ga-user-create]]
== Create a user

To create a new user account, follow these steps:

. Log in as a user with admin permissions.
. Click menu:User Management[Manage Users] in the side menu.
. Or, click menu:Administration[Configure OpenNMS] in the side menu, then under OpenNMS System, click menu:Configure Users, Groups and On-Call Roles[Configure Users].
. Click *Add New User* and specify a username and password, confirm the password, and click *OK*.
+
NOTE: You cannot use angle brackets (`<>`), single (`'`) and double quotation marks (`"`), or the ampersand symbol (`&`) in a username.

. (Optional) Add user information in the appropriate fields.
. (Optional) <<deep-dive/user-management/security-roles.adoc#ga-role-user-management-roles, Assign user permissions>>.
+
NOTE: By default, a new user has permissions to acknowledge and work with alarms and notifications.
They cannot access the *Configure OpenNMS* administration menu.
+
To create a user with admin privileges, add the `ROLE_ADMIN` role to their account.

. (Optional) Specify how to send messages to the user in the notification information area.
. (Optional) <<ga-user-schedule, Set a notification schedule>> for the user.
. Click *Finish* to save changes.

[[ga-user-schedule]]
== Create duty schedule

A duty schedule specifies the days and times a user or group of users receives notifications, on a per-week basis.
This feature lets you customize a schedule based on your team's hours of operation.
Schedules are additive: a user could have a regular work schedule, and a second schedule for days or weeks when they are on-call.

If {page-component-title} needs to notify an individual user, but they are not on duty at the time that the notification is generated, it never sends the notification to them.

Notifications sent to users in groups are different, depending on the scenario:

* For a group on duty at time of notification: all users also on duty receive the notification.
* For a group on duty with no members on duty: the notification is queued and sent to the next user who comes on duty.
* For an off-duty group: the notification is never sent.

To add a duty schedule for a user or group of users, follow these steps:

. Log in as a user with admin permissions.
. Click menu:User Management[Manage Users] or menu:User Management[Manage Groups] in the side menu, as appropriate.
. Or, click menu:Administration[Configure OpenNMS] in the side menu, then under OpenNMS System, click menu:Configure Users, Groups and On-Call Roles[Configure Users] or *Configure Groups*, as appropriate.
. Choose the user or group that you want to modify.
. In the *Duty Schedule* area, choose the number of schedules you want to add from the list and click *Add Schedule*.
. Specify the days and times during which you want the user or group to receive notifications.
. Click *Finish*.
