Skip to content

RBAC and User Management

The Telovix Console uses a role-based access control system with five roles ordered by tier. Role checks are enforced server-side on every request using minimum-role middleware. Assigning the lowest sufficient role to each team member limits blast radius if an account is compromised and keeps the audit trail clean by preventing high-privilege actions from accounts that should not take them.

Prerequisites

  • Console setup complete with at least one admin account
  • admin role to create users or change roles

Role tiers

RoleTierString valueWhat it controls
viewer1viewerRead-only access to dashboards, fleet state, compliance posture, and reports
analyst2analystAll viewer access plus alert triage, investigations, event queries, and anomaly review
sensor_owner3sensor_ownerAll analyst access plus management of sensors within assigned node groups only
operator3operatorAll analyst access plus pack assignment, enforcement changes, containment, and exercise creation
admin4adminFull access including user management, SSO configuration, license import, and global settings

The tier ordering is Admin(4) > Operator(3) = SensorOwner(3) > Analyst(2) > Viewer(1). Access checks use a minimum-tier comparison: a route requiring operator accepts any role at tier 3 or above.

sensor_owner and operator share tier 3 but differ in scope. An operator can act on any sensor in the fleet. A sensor_owner can only act on sensors in the node groups assigned to their account. Scope enforcement is applied separately from tier enforcement.


Creating the first admin user

The first admin account is created during the Console setup wizard. This bootstrap step can only run once. The bootstrap account receives the admin role automatically.

After bootstrap, all other accounts are created by invitation or by an admin directly.


Managing users

Inviting a user

Requires admin role.

In the Console, navigate to Settings > Users and click Invite User. Enter the email address and select a role from the dropdown. Click Send Invitation. The Console sends an invitation email to the specified address. The invitation contains a time-limited token. When the recipient accepts, their account is created with the assigned role. Role must be one of: admin, operator, sensor_owner, analyst, viewer.

Settings > Users page showing the Invite User dialog with the email field and role dropdown.
Settings > Users page showing the Invite User dialog with the email field and role dropdown. Click to enlarge

Listing users

In the Console, navigate to Settings > Users. The page lists all Console users with their email, display name, role, and status.

Changing a user's role

Requires admin role. The bootstrap admin's role cannot be changed.

In the Console, navigate to Settings > Users, click the row for the user you want to change, and select a new role from the Role dropdown. Click Save.

Disabling and enabling a user

Requires admin role.

In the Console, navigate to Settings > Users, click the row for the user, and click Disable User or Enable User as appropriate. Disabling a user invalidates active sessions and prevents new logins without deleting the account or its audit history.

Listing and revoking invitations

In the Console, navigate to Settings > Users and select the Pending Invitations tab. Pending invitations are listed with their email, role, and expiry time. To revoke a pending invitation, click the trash icon next to the invitation.


Sensor scope for sensor_owner

The sensor_owner role restricts a user to sensors in specific node groups. Scope assignment requires admin role.

In the Console, navigate to Settings > Users and expand the user with the sensor_owner role. The group scope section shows assigned groups inline. Click Add Group and select from the available sensor groups. To remove a scope, click the remove icon next to the group name.

📸 Screenshot: settings-user-group-scope Settings > Users page showing a user row expanded with the group scope section - assigned groups listed with remove icons and the Add Group button.

A sensor_owner with no group scope assigned can see no sensors. A sensor_owner with multiple group scope assignments can see and manage sensors in all assigned groups.

Cluster scope for Kubernetes deployments is managed from the same user detail page under the Cluster Scope tab. Changes to cluster scope are recorded in the audit log as console_user_cluster_scope_updated.


Session management

Listing active sessions

In the Console, navigate to Settings > Account > Active Sessions. This page lists all active sessions for the signed-in user, showing device, browser, IP address, and last active time.

Revoking a session

On the Settings > Account > Active Sessions page, click Revoke next to any session you want to terminate. The session is invalidated immediately. Use this to terminate stale or suspicious sessions.


MFA (TOTP)

Users can enable TOTP-based MFA on their accounts.

In the Console, navigate to Settings > Account > Security and click Enable Two-Factor Authentication. Scan the QR code with your authenticator app, then enter the first code to confirm enrollment.

To disable MFA, navigate to the same page and click Disable Two-Factor Authentication. You must provide your current password and a valid TOTP code to confirm.

MFA enable and disable events are recorded in the audit log as mfa_enabled and mfa_disabled.


SSO (SAML 2.0 and OIDC)

The Console supports SAML 2.0 and OpenID Connect (OIDC) for single sign-on. SSO configuration requires admin role.

In the Console, navigate to Settings > SSO. From this page you can view the current SSO configuration, configure a new provider (SAML 2.0 or OIDC), and remove an existing configuration.

📸 Screenshot: settings-sso Settings > SSO page showing the provider selector (SAML / OIDC), configuration fields, and test connection button.

New users created via SSO receive the viewer role by default unless you configure role mapping in the SSO settings. The Console records SSO user creation in the audit log as sso_user_created.

The SSO encryption key is derived at Console startup from the Console instance ID via HMAC-SHA256. Changing the Console ID invalidates all SSO sessions.


API keys

API keys provide programmatic access without using a session cookie. They are created by authenticated users and scoped to specific operations.

In the Console, navigate to Settings > Account > API Keys. This page lists all API keys for the signed-in user. Click Create API Key, enter a name, and select the desired scopes. Copy the key value immediately after creation - it is shown only once and cannot be retrieved later.

To revoke an API key, click the trash icon next to it on the API Keys page.

API key creation and revocation are recorded in the audit log.


What each role can do: practical reference

Actionvieweranalystsensor_owneroperatoradmin
View fleet, events, dashboardsYesYesYes (scoped)YesYes
Triage and investigate alertsNoYesYes (scoped)YesYes
Query runtime eventsNoYesYes (scoped)YesYes
Assign policy packsNoNoNoYesYes
Change enforcement stateNoNoNoYesYes
Create / run threat exercisesNoNoNoYesYes
Contain / release sensorsNoNoNoYesYes
Create / delete enrollment tokensNoNoNoYesYes
Manage sensor groupsNoNoNoYesYes
Import license bundleNoNoNoNoYes
Create / disable / role-change usersNoNoNoNoYes
Configure SSONoNoNoNoYes
Manage API keys (own)NoNoNoYesYes

Audit coverage for user management

All user management actions are recorded in the audit log. Key action types:

  • console_user_created, invitation_created, invitation_accepted
  • console_user_role_updated, console_user_disabled, console_user_enabled
  • console_user_group_scope_assigned, console_user_group_scope_removed
  • login, logout, password_change, mfa_enabled, mfa_disabled
  • sso_login, sso_login_failed, sso_user_created, sso_config_updated

Export user management audit activity by navigating to Audit Log in the Console, filtering by Action Family = user_management, and clicking Export. Select CSV format for spreadsheet-compatible output.


Operational guidance

Keep admin accounts to a minimum: The admin role can change other users' roles, import licenses, configure SSO, and globally modify all sensor settings. Limit it to the people who genuinely need all of that. Use operator for day-to-day fleet management.

Use sensor_owner for field teams: Teams responsible for specific sites or clusters can be given sensor_owner scope limited to their node groups. This gives them operational capability without fleet-wide visibility.

Disable rather than delete: Disabling a user preserves their audit history and allows re-enablement. If you delete a user record, their audit entries lose actor association. Use disable for departing users unless permanent removal is a compliance requirement.

SSO group-to-role mapping: If your identity provider supports group claims, configure role mapping in the SSO settings so users receive the correct role automatically at first login rather than defaulting to viewer and requiring manual assignment.


Further reading

Released under the Telovix Commercial License.