Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 23 additions & 2 deletions articles/13-security/13-3-access-controls-sso.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,19 @@ Under **Settings > Guardrails > Policies**, you can create and manage spend poli

## Multi-Factor Authentication (MFA)

Multi-factor authentication is required for all administrative and engineering access to production systems and management consoles. MFA adds a second layer of verification beyond a password, helping prevent unauthorized access even if credentials are compromised.
MFA adds a second layer of verification beyond a password, helping prevent unauthorized access even if credentials are compromised.

Within Light, multi-factor authentication is required for all administrative and engineering access to production systems and management consoles.

### MFA for your users

Light also applies its own MFA step to users signing in to the application:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is missing that not all roles require it. I think reimbursement role and card holder don't require it. Don't remember exactly, but this would be defined in the auth0 action code.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, added. One correction: Cardholder is not exempt — the only exempt roles are REIMBURSEMENT and INVOICE_APPROVER, and the check is "every role the user holds is in that set", so a Cardholder does get prompted.

Worth flagging since the belief that Cardholders skip MFA is wrong in the unsafe direction if it reaches a customer.


- **Authenticator app**: Users verify with a one-time password from an authenticator app such as Google Authenticator.
- **Applies in addition to SSO**: Signing in through your identity provider does not replace Light's MFA step. If your identity provider also enforces MFA, users complete both.
- **Who is prompted**: MFA is required for users holding any role beyond **Reimbursement** and **Invoice approver**. A user whose access is limited to those two roles is not prompted for a second factor.
- **Remember this device**: Users can choose to be remembered, which suppresses the prompt on subsequent sign-ins for a limited period.
- **Lost devices**: Recovery codes are not enabled. A user who loses their authenticator device needs an administrator to reset their MFA enrolment.

## Session Management

Expand All @@ -124,7 +136,7 @@ Light's authentication layer enforces session controls to limit exposure from un
- **Absolute session lifetime**: Sessions have a maximum lifetime regardless of activity, after which a fresh sign-in is required.
- **Sign-out propagation**: Signing out in Light revokes the active session at the identity layer.

Customers using SSO inherit session controls from their identity provider; values configured in the IdP take precedence over Light's defaults.
These session controls are enforced by Light for all users, including those signing in through SSO. Your identity provider governs how users authenticate, but it does not extend Light's session lifetime — once a Light session reaches its inactivity or maximum limit, the user is returned to your identity provider for a fresh sign-in.

## Account Lockout and Brute-Force Protection

Expand Down Expand Up @@ -164,6 +176,15 @@ SSO is configured at the organization level in coordination with Light's team

Light's team will configure the connection on the Auth0 backend and test it with you before going live.

### User Provisioning

SSO controls how users authenticate — it does not create their Light accounts. Light does **not** support just-in-time (JIT) provisioning from your identity provider: users are not created on first sign-in, so each user must already exist in Light before they can sign in through SSO. A user who authenticates successfully at your identity provider but has no matching Light account will be denied access.

Users can be created in either of two ways:

- **Manually**, under **Business partners > Users**, using the same email address they will present from your identity provider.
- **Automatically from your HR system.** Light's HRM integration imports employees, keeps their active/inactive status in step, and assigns a default role — so joiners and leavers are handled without manual steps. See [HRM Integration (Finch)](/articles/11-integrations/11-8-hrm-finch).

### SAML Configuration

When setting up SAML-based SSO, you'll need to configure a new SAML application in your identity provider (e.g., Okta, Azure AD, OneLogin). Use the following callback URL:
Expand Down