SG SealGrid Athena Docs

Security Settings

Athena's sign-in behavior is governed by a small set of security settings you control from Settings → Security: how long a session and its token stay valid, when an account locks after repeated failed logins, and the password policy your users' passwords must satisfy. This page explains each setting, its default and allowed range, how it is enforced, and how to read or change it from the console, the REST API, and PowerShell.

Admin only

Reading and changing security settings requires the Admin role. See Roles & Permissions. These settings are applied live — no server restart is required.

Where to find it#

Open Settings → Security in the console. The tab groups the settings into three sections, each with its own Save action:

Values you set here are stored in the server's configuration and read back the next time each rule is evaluated, so changes take effect without restarting the server. Every change is written to the audit trail.

Session & token expiration#

Two independent controls decide how long a signed-in operator stays authenticated.

SettingDefaultRangeWhat it does
Token Expiration (minutes) 15 5–1440 Lifetime of the session token minted at sign-in. Once it expires the operator must sign in again. Applies to console and API sessions alike.
Session Timeout (minutes) Ships at 3 0–1440 Idle timeout for the console. After this many minutes without activity the operator is warned and then signed out. Set to 0 to disable the idle timeout entirely.

The idle timeout is interactive: about a minute before it fires, the console shows a countdown dialog with Stay logged in and Log out now buttons, so a user who is still at their desk can extend the session with a click. Any keyboard or mouse activity resets the idle timer. When the timeout is reached the console clears the session and returns to the sign-in page.

Token vs. idle timeout

Token Expiration is an absolute ceiling — the session ends when the token expires no matter how active the user is. Session Timeout is a rolling idle limit that a still-present user can keep extending. For a locked-down kiosk, keep both short; for a NOC wallboard, you might set a long token expiration and disable the idle timeout with 0.

Account lockout#

To slow down password-guessing, Athena counts failed sign-ins per account and temporarily locks the account once the threshold is reached.

SettingDefaultRangeWhat it does
Max Failed Attempts 5 1–20 Number of consecutive failed sign-ins before the account is locked.
Lockout Duration (minutes) 15 1–1440 How long the account stays locked after the threshold is hit. It unlocks automatically when the duration elapses.

These two settings work alongside the server's built-in brute-force protections — a progressive delay that grows with each failed attempt, a per-IP request-rate limit, and a higher hard-lock threshold for repeated lockouts that requires a manual unlock. Those extra protections are covered on the Emergency Recovery page.

If everyone is locked out

An Admin can clear a lockout for other users from the console. If every admin is locked out, use the localhost-only break-glass Emergency Recovery endpoints from the server host to unlock an account or reset a password.

Password policy#

The Password Policy section defines the complexity rules for local passwords — the passwords you set when creating a user or resetting one. Directory (LDAP / Active Directory) and SSO (Keycloak) users authenticate against your identity provider and are unaffected by this policy; see LDAP / Active Directory and Authentication & SSO.

SettingDefaultWhat it does
Minimum Length8 (range 6–128)Fewest characters a local password may contain.
Require UppercaseOnRequire at least one uppercase letter (A–Z).
Require LowercaseOnRequire at least one lowercase letter (a–z).
Require DigitOnRequire at least one number (0–9).
Require Special CharacterOffRequire at least one non-alphanumeric character.
Built-in baseline

Regardless of how the policy is tuned, every local password is always validated against a minimum baseline: at least 8 characters, with an uppercase letter, a lowercase letter, and a digit. Use the Password Policy settings to record and communicate your organization's requirements on top of that baseline. To rotate an existing password, use the reset-password action on the Users screen.

REST API#

The same settings are available over the JWT-authenticated REST API on port 8443. Send the bearer token as Authorization: Bearer <token>; both endpoints require the Admin role.

EndpointRolePurpose
GET api/settings/securityAdminRead the current session, lockout, and password-policy settings.
PUT api/settings/securityAdminUpdate the security settings. Send the full settings object.
# Read current security settings
curl -k -H "Authorization: Bearer <token>" \
  https://athena.example.com:8443/api/settings/security

# Update: 30-minute idle timeout, lock after 3 failures for 30 minutes,
# and require a special character in passwords
curl -k -X PUT -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "tokenExpirationMinutes": 15,
    "sessionTimeoutMinutes": 30,
    "maxFailedLoginAttempts": 3,
    "lockoutDurationMinutes": 30,
    "passwordPolicy": {
      "minimumLength": 12,
      "requireUppercase": true,
      "requireLowercase": true,
      "requireDigit": true,
      "requireSpecialCharacter": true
    }
  }' \
  https://athena.example.com:8443/api/settings/security

Values are clamped to their allowed ranges on save (for example, Session Timeout to 0–1440 and Password Minimum Length to 6–128), so an out-of-range value is corrected rather than rejected.

PowerShell#

The Athena PowerShell module reads and writes the security settings with Get-AthenaSettings and Set-AthenaSettings using the Security category. Sign in with Connect-Athena as an Admin first.

# Connect as an Admin
Connect-Athena -Server "athena.contoso.com"

# Read the current security settings
$security = Get-AthenaSettings -Category Security
$security.SessionTimeoutMinutes
$security.PasswordPolicy

# Tighten the idle timeout and lockout, then save
$security.SessionTimeoutMinutes = 15
$security.MaxFailedLoginAttempts = 3
$security.LockoutDurationMinutes = 30
Set-AthenaSettings -Category Security -Settings $security

# Require a special character in local passwords
$security.PasswordPolicy.RequireSpecialCharacter = $true
Set-AthenaSettings -Category Security -Settings $security

Set-AthenaSettings supports -WhatIf/-Confirm, so you can preview a change or gate it in a script.

Auditing#

Every change to the security settings is written to the audit trail as a Security settings change, recording the acting user, their IP address, and which values changed — for example a change to Token Expiration, Min Password Length, or Require Special Character. This gives you a complete record of who adjusted the sign-in policy and when.