SOC 2 Control Implementation Guide

Logical Access

Customer Authentication and Authorization for SOC 2

Customer access enforces strong authentication, role-based authorization, and customer/tenant boundaries for portals, reports, evidence, and administrative roles.

Use this guide to put the control into operation, decide what records to retain, and check that an auditor can trace the evidence back to the work your team performed.

Maintained by GreenHat Security · Reviewed August 21, 2026

What this control should accomplish

Each customer user is strongly authenticated and can reach only the tenants, records, reports, and administrative actions explicitly assigned to that identity.

First SOC 2 program

A credible starting point

Use a reputable managed authentication service, define a small set of customer roles, derive tenant context on the server, and enforce authorization in API and data-access code rather than relying on hidden interface elements. Add negative tests that try to cross tenant boundaries.

As the company scales

Make it repeatable

Move authorization rules into a shared policy layer, automate role and tenant-boundary tests in delivery pipelines, govern support impersonation, and monitor customer administrator changes and repeated authorization failures.

How to implement Customer Authentication and Authorization

  1. 1

    Map customer roles to actions

    For each customer role, list allowed actions, sensitive objects, administrative capabilities, and whether access is limited to one tenant or a defined set of tenants.

    You should end up with: A customer role-and-permission matrix that product and engineering owners can review.

  2. 2

    Harden authentication paths

    Configure session lifetime, recovery, lockout or throttling, strong authentication for sensitive roles, and secure handling of tokens across web, API, and mobile entry points.

    You should end up with: Authentication settings and test results for login, recovery, session expiry, and sensitive-role access.

  3. 3

    Establish trusted tenant context

    Resolve customer and role context from the authenticated identity on the server, and reject attempts to substitute a tenant identifier supplied only by the browser or request body.

    You should end up with: Documented tenant-context flow with representative middleware or policy configuration.

  4. 4

    Enforce authorization at every data path

    Apply the same tenant and role checks to APIs, background jobs, reports, exports, object downloads, search results, and customer-support functions.

    You should end up with: A path-by-path authorization inventory linked to implemented enforcement points.

  5. 5

    Test denied and cross-tenant cases

    Create automated tests that use valid identities with the wrong role or tenant and attempt direct-object, report, export, and administrative access.

    You should end up with: Repeatable negative-test results showing that unauthorized requests are denied without exposing another customer’s data.

Evidence to keep, and what it should prove

Build the evidence set in three layers: what defines the control, who approved or reviewed it, and what proves it operated. Collect operating records when the work happens so they remain dated, attributable, correctly scoped, and traceable to the underlying activity.

Before sharing, remove unrelated personal or customer data, never expose passwords, tokens, or secret values, preserve enough source context to authenticate the record, and use the secure exchange approved for the engagement.

Policy / design artifacts

Documents that define the control, its scope, ownership, and expected way of working.

Customer role model

  • Confirm what the record proves

    The approved access design defines which customer roles may perform sensitive actions and which tenant or customer scope limits each role.

  • Include this context

    Role name

  • Include this context

    Allowed actions

  • Include this context

    Prohibited actions

  • Include this context

    Tenant scope

  • Include this context

    Role owner

  • Include this context

    Approval or version date

Weak evidence to avoid

A product screenshot showing three role names without their server-enforced permissions, tenant scope, owner, or version.

Operating / technical evidence

Dated proof that the control actually ran, such as tickets, logs, settings, exports, reports, and test results.

auth configuration

  • Confirm what the record proves

    The current authentication service enforces the intended login, session, recovery, and sensitive-role settings for the scoped customer application.

  • Include this context

    Application or tenant

  • Include this context

    Authentication method

  • Include this context

    Session settings

  • Include this context

    Recovery settings

  • Include this context

    Sensitive-role safeguards

  • Include this context

    Generated-at timestamp

Weak evidence to avoid

A generic authentication-provider settings page that does not show the production application, effective policy, session values, or capture date.

tenant scoping tests

  • Confirm what the record proves

    Valid users assigned to one customer are denied when they attempt direct API, object, report, or administrative access in another customer context.

  • Include this context

    Test run ID and date

  • Include this context

    Source tenant and role

  • Include this context

    Target tenant and object

  • Include this context

    Access path tested

  • Include this context

    Expected and actual result

  • Include this context

    Failure and retest link

Weak evidence to avoid

A green unit-test summary that tests missing login only and never uses two valid customer identities against a production-like authorization path.

user access settings

  • Confirm what the record proves

    Current customer identities, roles, tenant assignments, and sensitive authentication settings in the application match authorized customer administration decisions.

  • Include this context

    Customer identity

  • Include this context

    Tenant

  • Include this context

    Assigned role

  • Include this context

    Account status

  • Include this context

    Authentication setting

  • Include this context

    As-of timestamp

Weak evidence to avoid

One user profile with no tenant identifier, effective role, account status, source population, or as-of timestamp.

Which records should you prepare for the audit?

Type 1

Evidence at the as-of date

As of the selected date, retain the current customer role model, production authentication and tenant-enforcement configuration, current customer role assignments, and the latest successful cross-tenant negative test.

Type 2

Evidence across the review period

Include every customer role or tenant-assignment grant, change, and removal; every material authentication or authorization configuration change; every required cross-tenant test run for API, object, report, and administrative paths; and every governed support override during the review period.

Completeness check

Reconcile customer identities and role assignments between the authentication service and application data store, then reconcile authorization deployments and the complete scheduled test history to the role model and supported data paths.

Build the record set from

  • Customer identity provider
  • Application user and tenant store
  • Authorization policy service
  • Source control and deployment history
  • Automated test platform
  • Support administration logs

Keep these fields for each record

  • Identity or test ID
  • Tenant and role
  • Action or configuration changed
  • Effective timestamp
  • Decision or test result
  • Failure, override, or remediation link

How an auditor may test this control

Use this checklist to prepare for procedures an auditor may perform. The exact steps and sample selection depend on your engagement scope and the service auditor's professional judgment.

  • Confirm the intended control outcome

    Determine whether the control is designed to achieve this result: Each customer user is strongly authenticated and can reach only the tenants, records, reports, and administrative actions explicitly assigned to that identity.

  • Confirm ownership and operating cadence

    Compare the documented owner with the intended role (IT / Infrastructure Owner / System Owners), then compare dated records with the stated cadence: Per request/change; periodic review quarterly/annually by risk.

  • Establish the complete audit record set

    Reconcile customer identities and role assignments between the authentication service and application data store, then reconcile authorization deployments and the complete scheduled test history to the role model and supported data paths.

  • Prepare the as-of-date evidence for a Type 1 engagement

    As of the selected date, retain the current customer role model, production authentication and tenant-enforcement configuration, current customer role assignments, and the latest successful cross-tenant negative test.

  • Prepare period evidence for a Type 2 engagement

    Include every customer role or tenant-assignment grant, change, and removal; every material authentication or authorization configuration change; every required cross-tenant test run for API, object, report, and administrative paths; and every governed support override during the review period.

  • Inspect the policy / design artifacts

    Documents that define the control, its scope, ownership, and expected way of working.

    • Inspect Customer role model

      For each selected record, confirm it demonstrates The approved access design defines which customer roles may perform sensitive actions and which tenant or customer scope limits each role.

      • Role name
      • Allowed actions
      • Prohibited actions
      • Tenant scope
      • Role owner
      • Approval or version date
  • Inspect the operating / technical evidence

    Dated proof that the control actually ran, such as tickets, logs, settings, exports, reports, and test results.

    • Inspect auth configuration

      For each selected record, confirm it demonstrates The current authentication service enforces the intended login, session, recovery, and sensitive-role settings for the scoped customer application.

      • Application or tenant
      • Authentication method
      • Session settings
      • Recovery settings
      • Sensitive-role safeguards
      • Generated-at timestamp
    • Inspect tenant scoping tests

      For each selected record, confirm it demonstrates Valid users assigned to one customer are denied when they attempt direct API, object, report, or administrative access in another customer context.

      • Test run ID and date
      • Source tenant and role
      • Target tenant and object
      • Access path tested
      • Expected and actual result
      • Failure and retest link
    • Inspect user access settings

      For each selected record, confirm it demonstrates Current customer identities, roles, tenant assignments, and sensitive authentication settings in the application match authorized customer administration decisions.

      • Customer identity
      • Tenant
      • Assigned role
      • Account status
      • Authentication setting
      • As-of timestamp
  • Trace the control from design to operation

    Use the categories that apply to this control: connect any policy or design artifact to its approval or review record, then trace a selected operating record through execution, result, and any exception or remediation.

Common implementation and evidence gaps

  • The interface hides buttons, but the backend endpoint accepts the same action from an unauthorized role.
  • A tenant identifier supplied by the browser is trusted without binding it to the authenticated identity.
  • Reports, exports, search indexes, or asynchronous jobs apply different scoping rules from the main application.
  • Customer-support impersonation bypasses normal authorization and is not approved or logged.
  • Long-lived sessions remain usable after a role or customer assignment changes.

Before you call this control ready

  • Can a basic customer user call an administrator endpoint directly, and does the server deny it?
  • Do negative tests cover two real tenant contexts rather than only missing or invalid authentication?
  • Are report generation, object downloads, search, and background processing subject to the same tenant rules?
  • Can customer administrator changes be attributed to an actor and timestamp?
  • Does disabling or changing a customer identity invalidate existing sessions and tokens as intended?

Trust Services Criteria references

These identifiers help you navigate related Trust Services Criteria. They do not reproduce the criteria or prove that this control fully addresses them in your environment.

  • CC6.1
  • CC6.2
  • CC6.3
  • CC6.6

Confirm final scope, mappings, and testing expectations with your service auditor. SOC 2® is an AICPA trademark; GreenHat Security is not affiliated with or endorsed by AICPA.