Does your product support Multi-Factor Authentication (MFA) for customer users when logging into your system?
RemediatedYes
GRACE supports MFA for all customer accounts and requires it at every production sign-in. After a correct password the user must pass a second factor before a session is issued. The default factor emails a 6-digit one-time code to the account email address; codes expire in 10 minutes and are stored only as SHA-256 hashes. Users may upgrade to an app-based TOTP authenticator (RFC 6238 — Google/Microsoft Authenticator, 1Password, Authy) by scanning a QR code; the TOTP secret is encrypted at rest with AES-256-GCM. MFA can also be scoped to specific roles by configuration.
NIST CSF V1.1: PR.AC-1, PR.AC-4, PR.AC-6 · NIST CSF V2.0: PR.AA-01, PR.AA-02, PR.AA-05Evidence Does your product support Single Sign-On (SSO), such as SAML or OIDC, for customer users logging into your system? (Password & complexity)
In ProgressPassword policy and lockout implemented; SSO planned
Passwords are set through a complexity policy on create, change, and reset: minimum 8 characters with an uppercase letter, a lowercase letter, and a number (configurable via MIN_PASSWORD_LENGTH). Passwords are stored only as salted bcrypt hashes. Repeated failed sign-ins trigger temporary account lockout. Enterprise SSO (SAML/OIDC) is on the roadmap; until it ships, MFA-protected password authentication is the supported mechanism.
NIST CSF V1.1: PR.AC-6 · NIST CSF V2.0: PR.AA-02Evidence What password complexity configurations and settings (case, characters, length, reuse, expiration) are available?
ImplementedMinimum 8 characters requiring upper, lower, and numeric characters; configurable minimum length.
Enforced server-side on create/change/reset. Password fields are obscured in the UI. Reset and email-verification tokens are stored only as SHA-256 digests.
NIST CSF V1.1: PR.AC-6 · NIST CSF V2.0: PR.AA-02Evidence Is there lockout for failed login attempts?
ImplementedYes
After a configurable number of failed attempts (default 10) the account is temporarily locked for a configurable window (default 15 minutes). The failed-attempt counter resets on successful authentication. The same lockout guards the MFA code-entry step against brute force.
NIST CSF V1.1: PR.AC-6 · NIST CSF V2.0: PR.AA-02Evidence Does your system/service support role-based access controls that may be applied to customer accounts?
ImplementedYes
GRACE enforces role-based access (sysadmin, administrator, charge nurse, viewer) with least-privilege defaults. All hospital data is scoped to the authenticated user's organization (tenant isolation); users cannot read another hospital's data.
NIST CSF V1.1: PR.AC-1, PR.AC-4, PR.AC-6 · NIST CSF V2.0: PR.AA-02, PR.AA-05Evidence Does your application force a timeout for inactivity?
ImplementedYes
Authenticated sessions expire after a configurable idle period (default 30 minutes in production) enforced in middleware, and have an absolute maximum lifetime. Session cookies are HTTP-only, SameSite=Lax, and Secure in production.
NIST CSF V1.1: PR.AC-6 · NIST CSF V2.0: PR.AA-02Evidence Describe the API security model for machine-to-machine access.
ImplementedScoped, hashed Bearer API keys per integration
Integrations authenticate with per-hospital Bearer keys (prefix grace_) that are stored only as SHA-256 hashes and carry least-privilege scopes (e.g. ingest:hl7, read:unit-state). Keys are minted and revoked by hospital admins.
NIST CSF V1.1: PR.AC-1, PR.AC-4 · NIST CSF V2.0: PR.AA-01, PR.AA-05Evidence