SaaS Offboarding Checklist for 2026 That Stops Ghost Access

Reading Time: 5 minutes

When someone leaves, access should leave with them. Yet in many teams, the “account” gets disabled while the sessions, tokens, and shared logins keep working.

That leftover access is ghost access. It’s like collecting keys at the door but forgetting the spare under the mat.

This 2026-ready saas offboarding checklist focuses on speed, proof, and the parts most teams miss, especially OAuth grants, API keys, and service accounts.

Why ghost access is worse in 2026 (and harder to spot)

SaaS offboarding used to mean email, VPN, and a few core apps. Now it’s hundreds of app connections, browser-based logins, automation bots, and vendor portals. As a result, “disabled in one place” often means “still active somewhere else.”

Three patterns cause most misses:

  • Token-based access outlives passwords. OAuth grants and long-lived refresh tokens can keep pulling data even after a password reset.
  • Admin sprawl hides in plain sight. People get temporary admin to “fix one thing,” then keep it for months.
  • Non-human access multiplies. Service accounts, shared inboxes, and integration users rarely follow HR events.

If you rely on SCIM, understand what it does and doesn’t cover in your stack. Vendor explanations like how SCIM deprovisioning works help clarify the boundary between IdP actions and app-side cleanup.

The 2026 SaaS offboarding checklist (timeline, owners, evidence)

Offboarding works best as a timed runbook with named owners. Use this table as your default flow, then attach app-specific steps.

Time windowPrimary ownerWhat “done” meansEvidence to save
Pre-offboarding (planned exit)HR + Manager + ITInventory apps, data owners, and handoffs confirmedTicket ID, app list export, manager approval
T0 (notification to IT)IT/IdentityCentral identity disabled, sessions revoked, high-risk secrets rotatedIdP audit event IDs, screenshots, timestamps
T+24 hoursApp owners + SecurityApp accounts disabled, OAuth grants removed, API keys rotatedAdmin logs, key rotation record, exports
T+7 daysSecurity + RevOps/FinOpsAccess review complete, licenses reclaimed, exceptions closedFinal checklist sign-off, exception register

Use these checkboxes as the core “T0 to T+24” pass. Keep them in one ticket so nothing gets scattered.

  • Confirm legal name, username, primary email, aliases, and employee ID match across systems
  • Disable identity at the source (IdP or directory), then revoke sessions
  • Remove from privileged groups and admin roles first, then general groups
  • Transfer ownership of critical assets (mailbox, Drive, CRM objects, code repos)
  • Rotate shared secrets the person could access (password vault items, shared inbox passwords)
  • Revoke OAuth grants and third-party app connections tied to the user
  • Identify and rotate API keys, PATs, SSH keys, and CI tokens owned by the user
  • Disable or re-key service accounts and automation tied to the user
  • Verify access removal in top systems (email, chat, CRM, finance, cloud)
  • Save audit evidence, then close with approver sign-off

Stop Ghost Access (what your IdP won’t fully clean up)

Server room interior featuring multiple racks secured by heavy digital padlocks on cables and doors, under dim blue security lighting that casts shadows for a high-tech secure atmosphere.

Most teams disable a user and assume SSO handles the rest. That’s only partly true. This section is the “ghost hunt” for access paths that survive a normal disable.

Enforce SSO and MFA (so you can actually revoke)

If an app allows local passwords, a user can often keep logging in after the IdP is disabled. In 2026, treat SSO enforcement as an offboarding control, not a convenience.

  • Require SSO for all supported SaaS apps, block local auth where possible
  • Enforce MFA at the IdP, and prefer phishing-resistant methods for admins
  • Separate admin roles into dedicated admin accounts, with stronger MFA

For teams building SCIM and lifecycle automation, a current view of providers can help you standardize, see best SCIM providers for automated provisioning in 2026.

SCIM deprovisioning: verify, don’t assume

SCIM often disables the app user, but it may not remove tokens, API keys, or app-level roles.

  • Confirm the SCIM action landed in the app (disabled or deactivated)
  • Check for app-side admin roles that SCIM doesn’t map
  • Confirm group-to-role mappings didn’t leave “shadow admin” access

Shared inboxes and shared logins (the quiet back door)

Shared mailboxes and “team” accounts are where ghost access hides best, because nobody expects them to be personal.

  • Remove the user from shared mailbox delegation and shared calendar access
  • Rotate passwords for shared accounts, then store in a vault with access logging
  • Review mail forwarding rules, delegated send-as, and third-party mailbox add-ons

API keys, tokens, and OAuth app grants

Tokens don’t care about HR dates. If a token exists, it works until you revoke it or it expires.

  • Revoke OAuth grants for the user in major apps (CRM, support desk, file storage)
  • Rotate API keys created by the user (especially “personal” tokens used in scripts)
  • Invalidate personal access tokens (Git, CI, data tools), then re-issue under a team-owned identity

Gotcha: disabling an account rarely kills every token. Plan for explicit revocation in each high-risk SaaS app.

Service accounts and automation users

If a departing person “owns” a service account, your choice is simple: re-home it or replace it.

  • Change service account owner to a team mailbox and document it
  • Rotate credentials, update apps and scripts, then confirm last-run success
  • Remove the departed user from being the only admin who can manage that identity

Device and session revocation (close active doors)

Even with perfect identity steps, active sessions on devices can stay open.

  • Revoke IdP sessions and app sessions for high-risk tools
  • Remove registered MFA factors and trusted devices where your IdP supports it
  • If managed devices exist, trigger a device check-in and access cut (or wipe when required)

If you don’t have an IdP: manual fallback that still holds up in audits

Some SMBs still run without Okta, Entra ID, or a formal IdP. You can still prevent ghost access, but you must be disciplined and consistent.

  1. Start with the email account because it resets everything else. Reset password, kill sessions, and remove recovery options.
  2. Pull an “apps used” list from finance, browser password managers, and email invites.
  3. Disable accounts in your top 10 SaaS apps by risk (email, storage, chat, CRM, finance, cloud, password manager).
  4. Rotate shared credentials and shared inbox passwords the same day.
  5. Revoke OAuth connections inside core apps, then check “connected apps” pages.
  6. Search for API keys and tokens by username and email, then rotate or delete.
  7. Transfer ownership for data and automation, then test critical workflows.
  8. Document every action with timestamps and a single ticket number.

If Google Workspace is your “directory by default,” use vendor-aligned guidance like offboarding accounts from Google Workspace to avoid missing Drive ownership, devices, and recovery settings.

Evidence to collect, common failure points, and a copyable policy snippet

Organized office desk with laptop showing blurred abstract audit log dashboard, notebook checklist and pen, in a secure workspace with natural daylight and relaxed hands.

Audits and incident reviews punish vague statements like “disabled user.” Collect proof as you go, then attach it to the offboarding ticket.

Here’s a simple evidence map for your saas offboarding checklist.

Control areaEvidence to attachWhat it proves
IdP disable + session revokeAudit event ID, screenshot, timestampCentral access was cut at T0
SCIM deprovision resultsApp user export before/afterAccount status changed in SaaS app
OAuth grant removal“Connected apps” export or log referenceTokens and third-party access removed
API key rotationKey inventory export, rotation recordOld secrets can’t be used
Shared access cleanupDelegation list screenshot, vault recordShared inboxes and accounts were secured

Two failure points cause repeat incidents:

  • You offboard the user, not the access paths. Fix it by standardizing token revocation and key rotation in your runbook.
  • Exceptions live forever. Fix it with a short exception SLA and monthly review.

For a broader SaaS-first view of what teams often forget, compare your process to Nudge Security’s IT offboarding checklist, then adapt it to your toolset.

Copyable offboarding policy snippet (2026)

Offboarding SLA and timelines: IT disables central identity within 1 hour of HR notification for involuntary exits, and within 4 business hours for planned exits. High-risk access (admin roles, finance, cloud, password manager) must be removed within 4 hours. All other SaaS access must be removed within 24 hours.
Evidence requirement: Each offboarding ticket must include timestamps, admin log references (or screenshots), and exports for IdP status, key/token actions, and shared access changes.
Exceptions: Any exception needs Security approval, an owner, a written reason, and an expiration date no more than 7 days out. Security reviews exceptions weekly until closed.

Conclusion

Ghost access isn’t mysterious, it’s just unfinished offboarding. When you treat tokens, shared access, and automation identities as first-class risks, the process becomes predictable. Start with the timeline table, enforce SSO where you can, and keep evidence in a single ticket. Then ask one final question after every departure: what access could still work tomorrow if nobody touches it today?

Scroll to Top