Security & Data Ownership

Keep learner data where your policies say it goes

Host it with us or on infrastructure you control. Either way your security team gets identity integration, sign-in rules they can enforce, and controls they can inspect for themselves.

At a glance

  • Cloud or self-hosted
  • SAML 2.0 single sign-on
  • SCIM 2.0 provisioning
  • Passkeys and enforced 2FA
  • Built-in security scanner

Security reviews for an LMS tend to stall on the same questions. Where does the data sit? Can we use our identity provider? Who can see proctoring footage, and for how long? What happens to a leaver’s records?

LMS Advisor is a PHP and MySQL application, so one possible answer to the first question is “on your own server”. It runs on an ordinary VPS or cPanel host as well as in our cloud. The rest of this page describes the controls that ship in the product, where they live, and the few things they do not cover yet. We do not hold SOC 2, ISO 27001 or HIPAA certifications and will not suggest otherwise. What we can do is show your reviewers exactly how each control behaves.

The problem

What security reviewers usually flag

Data that must stay in-region or on-premises

Some contracts and public-sector rules do not allow learner records in a vendor’s shared cloud.

One more password to manage

Separate LMS credentials mean weak passwords, reset tickets and accounts that outlive the person who left.

Sensitive data with no end date

Webcam snapshots, exam audio and AI chat logs pile up for years unless someone sets a limit.

Admin rights nobody can account for

Without a log and a ceiling on roles, it is hard to show an auditor who could change what.

Capabilities

Controls that ship in the product

Each control below is set from the admin area of the platform, and your own team can check most of them on a trial install.

Cloud or self-hosted

Run on your own server with an in-app migration runner, database backups, system health checks and storage cleanup, or let us host it.

SAML 2.0 single sign-on

Okta, Microsoft Entra ID, OneLogin, Ping or ADFS, with signed assertions, replay protection, just-in-time accounts and group-to-role mapping.

SCIM 2.0 provisioning

Your directory creates, updates and deactivates accounts. A deprovisioned user is deactivated, never erased, so completions and certificates remain.

Passkeys and enforced 2FA

Passwordless sign-in with Face ID, Touch ID or Windows Hello, plus authenticator-app codes you can require by role.

Built-in security scanner

Checks code files, uploads, stored content and server configuration for malware signatures, injected scripts and risky settings.

Retention and audit trail

Set how long logs, proctoring snapshots, exam audio and AI chats are kept, and review privileged actions in the audit log.

In depth

How the controls behave in practice

Sign-in and identity

You add a SAML identity provider by importing its metadata. LMS Advisor verifies the signature on every response, allows two minutes of clock skew, and records each assertion ID so a captured response cannot be replayed. A second certificate slot lets you rotate the IdP certificate without an outage. You decide whether unknown users are created at first sign-in, whether profile fields refresh on each login, and how directory groups map to roles. When a person sits in several mapped groups the most privileged role wins, but nothing mapped from a directory can go above admin. Single logout is not implemented yet.

Each SCIM connection gets its own bearer token, which you can rotate. People are matched on the directory’s externalId before email, which avoids duplicate accounts when an address changes. A delete from the directory deactivates the account.

For local sign-in, you can require authenticator-app 2FA for chosen roles (super admin and admin by default). The settings screen shows how many people in each role have already enrolled, so you know who will be sent to setup before you enforce it. Each user gets eight single-use backup codes. Repeated failed sign-ins lock the account for a set period, five attempts and 15 minutes unless you change them.

Least privilege for people and integrations

The role ladder stops anyone granting a role at or above their own, including through bulk import and the API. API tokens carry scopes (read, write, sso, admin), an optional IP allowlist and an expiry date. Only a hash of each token is stored, and the value is shown once. Stored secrets such as 2FA seeds and LRS credentials are encrypted with AES-256-GCM.

Evidence you can review

Sensitive actions go to the audit log, including refused privilege changes, token creation, bulk imports and impersonation sessions. Impersonation is limited to admins and super admins, cannot be nested, and a super admin cannot become another super admin. The scanner runs in short batches so it finishes on shared hosting. It compares code files against an integrity baseline and malware signatures, looks for executable files in upload folders, scans stored HTML for injected scripts and iframes, audits configuration (exposed .env files, debug mode, leftover dev files), and lists admin accounts created in the last 30 days for you to confirm.

Retention

Under Legal Pages you set retention in days for audit logs, session history, analytics events, sent email, read notifications, proctoring snapshots, exam audio, AI tutor chats and inactive student accounts, which are anonymized (off by default). Enrollments, attempts, grades and certificates are deliberately outside these rules, because regulated training records often have to be kept for years.

See Security & Data Ownership in a live demo

We will show it with your own scenario, answer the security questions and send a written quote after the call.

Book a demo
Workflow

A hardening pass for a new install

Choose where it runs

Pick our cloud or your own server. A self-hosted install needs PHP, MySQL and scheduled cron jobs.

Connect identity

Import your IdP metadata for SAML, map groups to roles, and create a SCIM connection for joiners and leavers.

Tighten sign-in

Require 2FA for admin roles, turn on passkeys, and set the lockout threshold that suits your policy.

Scan and set retention

Build the integrity baseline, run a first scan, then set retention periods for proctoring media, exam audio and logs.

Review on a schedule

Check the audit log and API token list regularly, and rotate SCIM and API tokens when the people who hold them change.

Use cases

Teams with strict requirements

Public sector and education

Host on approved infrastructure in your own region and sign staff in through the directory you already run.

Certification bodies running proctored exams

Keep webcam snapshots and exam audio for as long as your appeal window, then let retention delete them.

Enterprises with a joiner and leaver process

SCIM mirrors directory changes into the LMS as they are pushed, and training history survives when someone leaves.

Organizations on modest hosting

The scanner, backups and health checks are built to run within ordinary hosting limits, with no agents to install.

Benefits

What your IT team can sign off on

  • A clear answer to where learner data lives
  • One identity per person, managed from your directory
  • Admin sign-ins protected by a second factor you can enforce
  • Sensitive exam media deleted on a schedule you set
  • A log your auditors can actually read
FAQ

Questions from security reviews

Can we host LMS Advisor ourselves?
Yes. It runs on PHP and MySQL, including on standard VPS and cPanel hosting. The admin area includes a migration runner, downloadable database backups, system health checks and storage cleanup, so routine updates and maintenance can be done from the browser.
Do you hold SOC 2, ISO 27001 or HIPAA certification?
No. We do not claim any certification or attestation. We describe the controls in the product and will walk your security team through them. On a self-hosted install, your own infrastructure controls apply as well.
Which identity providers work with SSO?
Any SAML 2.0 provider. Okta, Microsoft Entra ID, OneLogin, Ping and ADFS are the common ones. Google sign-in and token-based SSO from another site you run are also available.
What happens to training records when someone leaves?
They stay. A SCIM delete deactivates the account rather than erasing it, so completions and certificates remain for audits. If personal data has to go, the privacy request queue can anonymize the account while keeping anonymous completion records.
Is single logout supported?
Not yet. Signing out of LMS Advisor ends the LMS session, but a logout at the identity provider is not passed through to the LMS.
Can we turn off the AI features?
Yes. AI stays off until an admin enables it and chooses Anthropic or OpenAI as the provider. Every AI call is recorded in the AI Usage log with who made it and what it cost.
How are uploaded files checked?
Uploads are validated by their real MIME type rather than the file extension, stored under random names, and executable types are refused. Course media streams only to signed-in users.
How long is proctoring evidence kept?
As long as you decide. Proctoring snapshots and exam audio clips each have their own retention setting, and the daily job removes both the database records and the files on disk. We suggest keeping audio for a shorter time than snapshots.

See LMS Advisor with your own use case

A product specialist walks you through authoring, a proctored exam, certificates and the AI tools, using the programs you actually run.