HIVE80lab — Ops notes

The SSO Outage Runbook for Small Teams

A DNS outage makes you hard to find. A single sign-on outage makes you impossible to enter — including for you. The status page is up, the site renders, the database is fine, and every door is locked because the front door (Google Workspace, Okta, Entra ID, or whatever issues the tokens) is having a bad day. Worst of all, the people who could fix it are locked out too. The fix is not heroics at 2am. It is five checks to tell lockout from outage, one local door you built in sunlight, and a comms path that does not run through the thing that is down.

First five minutes: is it them or you?

Half of "SSO is down" is not an IdP outage — it is one misconfigured app, one expired signing certificate, or one person whose session died. Five checks before you declare anything:

  1. Reproduce from a second device on a different network. Phone on mobile data, incognito window, another office. One person failing = their session; everyone failing = the IdP.
  2. Test a second app behind the same IdP. The SSO login button on two different apps. Both dead = provider. One dead = that app's SAML/OIDC config, and the runbook is not this one — it is that app's admin page.
  3. Check the IdP's status page and your own auth logs. No successful authentications for fifteen minutes across all apps is a signal your logs can confirm before any vendor admits anything. Errors like invalid_signature or a today-dated cert expiry point at your side, not theirs.
  4. Check the auth domain itself. If login.yourcompany.com or the IdP's auth host stops resolving, this is a DNS problem wearing an SSO costume — run the DNS outage runbook first.
  5. Decide the path, out loud, in one sentence: "Provider-side — activating break-glass and posting status" or "Our side — last change was X, rolling back X." An IdP outage is the one incident where the person deciding should not be the person trying to log in.

Break-glass: the local door you built in sunlight

When the IdP is down, the only way in is a path that does not go through the IdP. That path must exist before the outage — building it during one means building it without testing it. Four properties of a break-glass that actually works:

What still works when login does not

The outage is smaller than it feels — if you know what survives:

Tell people before they tell you

Nothing turns a 40-minute IdP hiccup into a trust incident faster than silence. Three updates, on a clock:

The mistakes that turn an hour into a day

Worked example

An eleven-person agency, Friday 9:12am: Google Workspace authentication went partially down (Google later confirmed a global incident). The old way: everyone tried their own browser in turn for an hour, two admins reset passwords "to see if it helps" (it did not), the founder could not reach production because production SSH'd through SSO, and the first customer-facing word was a support ticket at 11:30 asking if the company had disappeared. Total: five hours of degraded work, 60+ unnecessary password resets, and one churned account.

The rerun, six months later: second-network reproduction at 9:14, second-app test confirmed provider-side by 9:19, break-glass opened for the two named on-call people at 9:21 — local admin on the deploy host and the payment panel, password rotated and ticket closed by 9:40. Status page updated 9:26 with "existing sessions unaffected" (and it was true — client work never stopped). Email fallback ran through the founder's personal-domain alias. Zero password resets. Total: 34 minutes of lockout for two break-glass users, zero for everyone else, and the post-mortem produced one permanent fix: a second local admin on the staging host, which the drill the next quarter proved in eleven minutes.

Metrics (for the SSO outage plan itself)

From the HIVE80lab kit

Related: the MFA device lost runbook is the single-person version of this incident; the DNS outage runbook is its sibling when the auth domain itself stops resolving; and the vendor outage runbook is the general playbook for any provider having the bad day the IdP is having. and the configuration drift audit is the pass that reconciles every break-glass edit this runbook produces back into the repo