Does SOC 2 require multi-factor authentication

SOC 2 does not name MFA as a rule, but CC6.6 and the auditor's testing of access make it the expected control for remote, administrative and sensitive access. This page explains where auditors look and how to evidence it.

On this page

Does SOC 2 require multi-factor authentication for every user?

The 2017 Trust Services Criteria do not use the words multi-factor authentication. The relevant requirement is CC6.6, which asks the organization to implement logical access security measures that protect against threats from sources outside its system boundaries. One of its points of focus is requiring additional authentication or credentials. In practice, auditors expect MFA wherever the threat from outside the boundary is greatest: remote access, administrative access, and access to production systems or customer data. The criteria set no required factor count and no list of which users must enroll. Points of focus are characteristics that help you design and evaluate a control, not separate requirements, and not every one has to be addressed. The exact scope comes from your own risk assessment and your system description, so a workforce with no production access may be scoped differently from one with it.

Your organization owns this control. It decides which accounts and access paths need a second factor, documents that decision, and operates it. An implementation partner can configure the identity provider, enforce the second factor on the chosen paths, and prepare the evidence, such as enrollment reports, policy exports and sample login records. Keycloak and authentik can both enforce a second factor during login, using TOTP apps, WebAuthn or FIDO2 passkeys, and recovery codes, so the technical choice is rarely the hard part. The harder decisions are which factors you accept for which roles, how recovery works when a device is lost, and how exceptions are approved and reviewed. Confirm these choices with your CPA firm before the observation period begins, because they shape what the auditor will sample.

Only the independent CPA firm tests the control and issues the SOC 2 report. Ask the firm early which MFA evidence it expects for each in-scope access path, and whether your documented scope matches its reading of CC6.6. For frameworks that set a specific factor rule, such as the FTC Safeguards Rule, check those requirements separately, since SOC 2 alone does not supply them. Plan for phishing-resistant options where your environment allows, and record any approved exception in writing with a compensating control and a review date.

Where auditors expect MFA to apply

Remote access is the situation most directly tied to CC6.6, which concerns threats from sources outside the system boundary. Auditors usually start here because a login from outside the corporate network is the path an attacker is most likely to use. They will ask how users reach the system from home, from travel and from unmanaged devices, and whether every route requires a second factor before a session is established. Expect them to test a sample of remote logins and to compare the configured policy against what the identity provider actually enforces.

  • VPN, zero-trust gateway and web application logins: Auditors ask for the configuration showing MFA is required for every remote entry point, not only the main one.
  • Session establishment: They ask whether MFA is enforced at each new session, and how long a session can persist without a new factor.
  • Enrollment and recovery: They ask how factors are registered and how recovery codes or help desk resets are verified.
  • Sampled log evidence: They pick logins from the review period and check that a second factor was recorded.
  • Exceptions for remote users: They ask for the documented compensating control if any remote path is exempt.

Before the audit, confirm that every remote path your users can reach is listed in the control matrix and that the enforcement setting matches the written policy.

How NIST AAL2 and CISA guidance raise the bar

SOC 2 does not adopt NIST or CISA guidance as a requirement, but auditors and customers often use it as a reference point when they judge whether an authentication design is strong enough. NIST SP 800-63B-4 defines authentication assurance level 2 (AAL2) as requiring either a multi-factor authenticator or two separate factors, and it requires verifiers to offer at least one phishing-resistant option. AAL3 goes further, requiring a phishing-resistant cryptographic authenticator with a non-exportable private key. For a SOC 2 readiness review, the practical question is whether your identity provider can meet AAL2 today and whether the phishing-resistant option is enabled for the populations that matter most, such as administrators and remote users.

CISA takes a layered position. It states that any MFA is better than no MFA, that phishing-resistant MFA is the standard all industry leaders should strive for, and that number matching is a reasonable interim step where phishing-resistant MFA is not yet feasible. CISA also names FIDO/WebAuthn as the only widely available phishing-resistant authentication, and it urges organizations to plan a move toward it. In practice, that means an action list: confirm which accounts still rely on SMS or email codes, check whether Keycloak or authentik is configured to enroll WebAuthn or passkeys, and record a dated plan for retiring weaker factors where they remain.

Separately, the FTC Safeguards Rule sets a specific MFA obligation for financial institutions. It requires multi-factor authentication for anyone accessing customer information on the company's system, using at least two of a knowledge, possession or inherence factor, unless the Qualified Individual approves an equivalent control in writing. If you serve banks or lenders, confirm whether that rule applies to you and whether a written exception exists. Ask customers to state their MFA expectations in the contract, because that text, not SOC 2 alone, usually sets the bar you will be measured against.

Implementing MFA with Keycloak or authentik

Both Keycloak and authentik can enforce a second factor at login, so the choice between them rarely decides whether MFA passes review. What matters is which factors you enable, where you enforce them, and whether you can show who enrolled, who was exempted and why. The cards below cover those decisions in the order an assessor will test them.

Two-factor authentication in Keycloak

Keycloak (Apache-2.0) supports two-factor authentication with passkeys, recovery codes and TOTP or HOTP codes from apps such as Google Authenticator or FreeOTP. Decide which of these you allow for your workforce and turn off the rest in the realm's authentication flows. Record the enabled factors in your access control documentation, because the assessor will compare that list with what users can actually enroll. Confirm the exact options available in your chosen Keycloak version before you write the policy.

One-time password and WebAuthn settings

Keycloak exposes configurable one-time password policies and W3C WebAuthn settings, including algorithm, digit count, period and attestation options for passkeys and security keys. Set these deliberately and keep the values in version-controlled configuration so the assessor can see the same settings across environments. A passkey or security key option is the phishing-resistant path, so make it available for administrators and remote access users. Confirm each setting name and default in your version.

Recovery code handling

Recovery codes let a user regain access after losing a phone or key, and they are a common route around MFA if handled loosely. Define who may issue a reset, how the identity is verified before a new factor is enrolled, and how the event is logged. Store issued codes only in the form your product supports and keep the reset procedure in the access review evidence. Treat a reset without a logged approval as an exception to report, not a routine step.

authentik authenticator validation stage

authentik (MIT) checks enrolled second factors during login through its authenticator validation stage, covering TOTP apps, WebAuthn and FIDO2 passkeys, Duo, SMS codes, email codes and static recovery codes. Bind this stage to the flows that handle your sign-ins so that every login path passes through it. Confirm which stage types and device classes your authentik version supports before you promise them in the control description.

Weaker factors: SMS and email codes

SMS and email codes count as a second factor, but they are not phishing-resistant, and CISA urges organizations to move toward FIDO/WebAuthn. If you allow SMS or email in authentik or any other system, limit them to a fallback path, document the reason, and require a phishing-resistant factor for administrators and remote administrative access. Auditors will ask whether the weaker factor is still needed and whether its use is monitored.

Enforcing MFA per application or group

Enforcement is where the control either holds or fails. Apply MFA to each application that holds customer data or administrative functions, and to groups that include privileged or remote users, rather than relying on a single global setting you cannot prove. Test each application with a non-privileged account and with an administrator account, and keep the test results. Review group membership with the access review so that new users inherit the right requirement.

Documenting enrollment and exceptions

Assessors test MFA by sampling users and checking that enrollment happened, that the factor is active and that any exception was approved. Keep an enrollment record for each user with the factor type, date and approver, and a register of exceptions with the business reason, compensating control and review date. Confirm with your auditor what sample evidence they expect before you finalize the register, because the format of an exception record often drives the test.

What evidence shows MFA is working

An auditor does not accept a statement that MFA is enabled. For a SOC 2 under the common criteria, the evidence has to show that the MFA policy exists, that every in-scope user is enrolled, and that second-factor checks actually happened at login. Start by exporting the MFA policy configuration from your identity provider: in Keycloak, this means the realm's required actions and the browser flow with the OTP or WebAuthn conditional stage; in authentik, the authenticator validation stage bound to the relevant flows. Keep dated exports so the auditor can see the configuration as it stood at each point in the period, and capture any change to it through your change management records.

Next, produce the population and the proof of use. Export the enrollment list for every user in scope, including service and administrative accounts where they use interactive login, and reconcile it against the directory so that a leaver or contractor without a second factor is caught. Pair that with authentication logs that show a second-factor event for each sampled session, including the factor type, the outcome and the timestamp. Remote access paths (VPN concentrators, bastion hosts, cloud console SSO and administrative consoles) need their own settings exports, because an MFA gate that protects the web app but not the admin path will be found in sampling.

Finally, document the exceptions. Any account that cannot use MFA needs a written exception, an approver, an expiry or review date, and a compensating control, and each of those needs its own record. Access review records should show that reviewers checked MFA status alongside entitlements. Before fieldwork, ask your CPA firm how many users and sessions they will sample, whether they test the population from system exports or from your reconciliation, and how they treat accounts enrolled after the period starts. Those answers decide how much of this evidence must be generated automatically rather than assembled by hand.

What to have in place before the audit

An auditor testing MFA will start from documents and then check whether the running systems match them. These four items connect the written policy, the list of systems it covers, the working configuration and the record of any gaps, so each one can be checked against the others.

An access control policy naming MFA scope

The policy should state which users, remote connections and administrative actions require multi-factor authentication, and which factors are acceptable. Name the systems explicitly, such as the identity provider, production consoles, VPN or zero trust gateway, code hosting and cloud accounts, so the scope is testable. To check it, pick three systems from the policy and confirm an administrator can show MFA being enforced on each one.

A current inventory of systems and admin accounts

Auditors sample from the population of in-scope systems, so an incomplete list makes the MFA control look weaker than it is. List every application that authenticates users, every administrative account, and every service that accepts remote access, with the owner of each. Check the inventory against the identity provider's user export and the cloud accounts' IAM listings; any account that exists outside the inventory is a finding waiting to happen.

Configured MFA with tested enrollment and recovery

MFA must be enforced in the identity platform, not left optional for users to enable. Self-hosted options such as Keycloak, which supports passkeys, recovery codes and TOTP or HOTP codes, and authentik, whose authenticator validation stage checks enrolled TOTP apps, WebAuthn and FIDO2 passkeys, is a common route. Test the full path: enrolling a new factor, logging in with it, using a recovery code, and revoking a lost device. Keep the test records, since an auditor will ask to see them.

A documented exception process

Some accounts, such as break-glass emergency accounts or legacy service integrations, cannot always accept an interactive second factor. Record each exception with its business reason, the compensating control, the named approver, and an expiry date for review. The FTC Safeguards Rule allows an equivalent control approved in writing by the Qualified Individual, so the same discipline applies to SOC 2 evidence. Check that every exception appears in the inventory and that none has passed its review date.

Who owns MFA in a SOC 2

Your organization owns the MFA control. Management decides which systems, users and access paths must require a second factor, approves the scope of the SOC 2 examination, and is accountable for the description of the system that the report covers. The control is only as reliable as the people who run it day to day, so ownership has to sit with named roles rather than with whoever installed the identity server.

  • Scope decisions: Confirm which applications, consoles, VPN gateways and administrative interfaces are inside the system boundary and must enforce MFA.
  • Policy and exceptions: Write the authentication policy, define who may approve an MFA exception, and record the compensating control and its expiry date.
  • Access reviews: Review enrolled factors and recovery methods on a set schedule, and remove factors belonging to leavers or changed roles.
  • Evidence ownership: Keep the configuration exports, enrollment logs and exception approvals that the auditor will request, and make sure someone can produce them on demand.
  • Operator training: Train help desk staff on identity verification before factor resets, since a reset path that skips verification can undo the control.

Before engaging anyone, check that a named owner can explain every MFA exception and produce its approval record within a day.

Questions about SOC 2 and MFA

Is multi-factor authentication mandatory for SOC 2?

No criterion in the 2017 Trust Services Criteria names MFA by name, but SOC 2 requires logical access controls that protect against threats from outside the system boundary, and MFA is the usual way organizations meet that expectation under CC6.6. The criteria are not a checklist. Your auditor will ask how you restrict access, protect credentials and require additional authentication for remote and administrative access, and an answer without MFA on those paths is hard to defend. The decision you must make is which accounts, paths and systems need a second factor, and how you document that choice in your system description and control matrix.

Does SMS count as a second factor for SOC 2?

SMS codes can satisfy a multi-factor requirement, but they are weaker than the alternatives and auditors and customers increasingly look at the phishing resistance of what you choose. NIST SP 800-63B-4 requires verifiers at authentication assurance level 2 to offer at least one phishing-resistant option, and CISA states that FIDO/WebAuthn is the only widely available phishing-resistant authentication. Treat SMS as a fallback or a transitional choice, document why it is used, and confirm your customers' expectations before relying on it as the only second factor for administrative access.

Can we use Keycloak or authentik for SOC 2 MFA?

Yes, both are open-source identity platforms that can enforce second factors, but the platform does not make you compliant. Keycloak (Apache-2.0) supports passkeys, recovery codes and TOTP or HOTP codes with configurable one-time password policies and WebAuthn settings. authentik (MIT) offers an authenticator validation stage that checks TOTP apps, WebAuthn and FIDO2 passkeys, Duo, SMS, email and static recovery codes. Confirm which methods your chosen version supports for each population, then capture configuration exports, enrollment records and policy settings as evidence for the auditor.

How much effort does an MFA rollout take?

The effort depends on how many identity sources, applications and privileged paths you have, how many users need enrollment, and whether legacy applications must be federated or fronted by a proxy. No duration is set by SOC 2 itself, and this page does not supply one. Ask any implementation partner for a written scope that lists each application, the enrollment method, the recovery process, the help desk procedure and the evidence you will receive. Most of the effort is usually in integration and user communication rather than in turning on the feature.

Does MFA alone satisfy CC6.6?

No. MFA is one part of CC6.6, which also looks at restricting access to what is needed, protecting credentials, and implementing boundary protection. An auditor testing MFA will still ask who can reach each system, whether accounts are reviewed, how recovery codes are stored and whether sessions and privileged access are controlled. The 2017 criteria present points of focus as characteristics that help design controls, not as separate requirements, so you choose which points to address and must explain that choice. MFA works best as one control inside a documented access design.

What if a legacy system cannot use MFA?

Start by documenting the system, its owner, its data and the reason it cannot accept a second factor. Common options are placing it behind a proxy or identity-aware gateway that enforces MFA before access, restricting it to a segregated network, shortening session lengths and tightening monitoring. Whether the compensating control is acceptable is a judgment you and your auditor make together, and any exception should be recorded with a review date and a retirement or replacement plan. Confirm with your auditor how they will test the compensating control before you rely on it.

Do we need MFA for customer logins too?

SOC 2 is driven by your service commitments and system boundaries, so customer-facing MFA is usually a product decision tied to what your customers require, not a fixed criterion. Your contracts, security questionnaires and any regulation your customers follow may ask for MFA on user accounts that reach their data. Decide which user types and actions need a second factor, record that decision in your system description, and make sure the control you describe matches what the product does during the examination period.

How DeployOpen prepares MFA for a SOC 2 audit

DeployOpen plans and implements self-hosted open-source identity platforms inside your own infrastructure, so MFA enforcement and its evidence are ready for the auditor. We prepare the systems and records; the independent CPA firm alone tests the controls and issues the report.

How we scope

  • Written scope names the systems, user populations and access paths that need MFA, including remote and administrative access.
  • We agree which factor types apply to each path and which exceptions, if any, need documented approval.
  • Engagements are fixed-scope, with deliverables and timelines confirmed in writing before work starts.

How we build

  • We deploy and configure Keycloak or authentik in your cloud account or data center, enforcing second factors for in-scope logins.
  • We set phishing-resistant options such as WebAuthn passkeys where feasible and document the fallback methods.
  • We test enforcement with negative cases, such as logins without a second factor, and keep the results as evidence.

How we hand over

  • You receive configuration records, the MFA control description and a mapping of each setting to the relevant criterion.
  • We document enrollment, recovery and reset procedures so your team can run them without us.
  • Evidence is exported in a form your CPA firm can sample, and gaps are listed before fieldwork begins.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • We can review configuration changes between audit periods so MFA enforcement stays consistent over time.
  • Questions about what your auditor will accept are confirmed with the auditor, not assumed by DeployOpen.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.