Blue Team of One field notes · security

HomeIdentity SecurityAuthentication & MFA

Deep dive · SSPR & MFA

SSPR without locking everyone out

Self-service password reset and MFA are safety features that can themselves lock out an entire tenant if you flip them on against raw objects. Here's how the technology is actually backed, exactly what to verify before you enable it, and what breaks when you skip the checks.

Enabling self-service password reset looks like a one-switch job. It is not. A tenant is never a clean list of people — it's a pile of humans, service accounts, shared mailboxes, guests, licensing edge cases and long-dead objects, and each of those categories fails SSPR (and MFA enforcement) in its own specific way. Flip the switch against the raw population and you don't get self-service; you get a help-desk flood, broken automations, and a handful of people who genuinely cannot get back in.

The actual engineering work isn't the toggle. It's the pre-flight: understanding what the feature is built on, refining the raw tenant down to the population that can safely use it, and knowing — in advance — every way it breaks if you don't. This post is that pre-flight.

01What SSPR and MFA are actually built on

Both ride the same registered-methods backbone. Understand that and the failure modes become obvious.

The single most important concept is that MFA and SSPR share one thing: the user's registered authentication methods. A method (Authenticator push, phone, FIDO2 key, etc.) is registered once and both features draw on it. That's why "we've done MFA, so SSPR is easy" is a trap — registering a method for MFA does not mean the user has enough methods, of the right kind, to complete a password reset.

Three distinctions do most of the damage when they're misunderstood:

ConceptWhat it actually meansThe trap
SSPR enabledThe tenant/group policy permits this user to use SSPREnabled ≠ able. A permitted user with no registered methods still can't reset.
SSPR registeredThe user has completed registration with enough methods to satisfy the reset policyMost users are MFA-registered but not SSPR-registered — a different, higher bar.
Methods requiredHow many methods the reset policy demands (usually two)A user with a single method can authenticate for MFA but can't meet a two-method reset.

For hybrid tenants there's a fourth pillar: password writeback. When a user resets in the cloud, the new password has to flow back to on-prem Active Directory through Entra Connect. If that path isn't healthy, the cloud reports success while the on-prem password never changes — one of the nastiest silent failures in the whole feature, covered in §05.

02A raw tenant is not your rollout population

Refine before you enable. The object count and the human count are wildly different numbers.

The first real task is subtraction. The tenant's total user-object count is meaningless for rollout planning because most of those objects aren't people who reset passwords. You have to filter down to the population that should be in scope, and the removed categories are exactly the ones that break loudly if you leave them in.

Refining a raw tenant into a rollout population All Entra user objects ~1,600 − service / app / automation accounts − shared mailboxes with sign-in enabled − guests · stale · disabled objects Real human population ~330 Ready to enable a handful
The readiness funnel. Object count is not human count, and human count is not ready count. Each subtracted band is a category that fails SSPR differently — which is why the filtering is the safety work, not a preliminary to it. (Numbers illustrative.)

Classifying service and non-human accounts is mostly keyword and behaviour analysis (naming patterns, no interactive sign-ins, app/automation ownership), then human validation of the edge cases. Shared mailboxes should not have interactive sign-in at all; any that do are a finding in their own right. Guests, stale objects (no sign-in in months) and disabled accounts all drop out. What remains is the population you actually plan against.

03The pre-flight checks

Verify every one of these before you enable anything.

CheckWhy it mattersIf you skip it
Human vs. non-human classificationService/app accounts shouldn't be reset-eligibleAutomations get MFA/SSPR prompts and break
Shared-mailbox sign-in disabledShared mailboxes are accessed via delegation, not sign-inThey get swept into enforcement and flagged
Methods registered ≥ policy minimumReset usually needs two methodsSingle-method users can't complete a reset
SSPR-registered, not just MFA-registeredDifferent, higher bar than MFAUsers "enabled" for SSPR still can't use it
Password writeback healthy (hybrid)Cloud reset must reach on-prem ADReset "succeeds" but the AD password never changes
Licensing coverageSSPR/registration needs the right SKUUnlicensed users silently excluded
Risk-policy interactionRisk-based policies can block mid-resetA risky sign-in blocks the very reset meant to recover it

04What goes wrong when you don't check

The whole reason the pre-flight exists. Each of these is a real failure mode.

The service-account blast radius. Enforce MFA or enable SSPR tenant-wide and every service, app-integration, and automation account is suddenly expected to have a human's authentication methods. They don't. The account can't satisfy the prompt, the automation that runs under it fails, and you've turned a security improvement into an outage. This is why non-human classification is the first check, not a nice-to-have.

Shared mailboxes with sign-in on. A shared mailbox is meant to be reached through delegation, with its underlying account sign-in disabled. When it isn't, enforcement treats it like a user — and now you're trying to register MFA methods for a mailbox nobody logs into directly. Every one you find is also a small security finding: an enabled sign-in on a shared mailbox is an account that shouldn't be directly authenticable at all.

Single-method users. The most common individual failure. A user registered one method for MFA, everyone assumed they were "done," and then a two-method reset policy leaves them unable to complete SSPR at the exact moment they need it — locked out, on the phone to the help desk, which defeats the entire point of self-service.

The distinction that bites hardest

SSPR-enabled is a permission; SSPR-registered is a capability. A report showing "98% enabled" tells you nothing about whether those people can actually reset. Registration — enough methods, of the right kind — is the number that matters. Confusing the two is how rollouts get greenlit and then fail on contact with real users.

MFA enforced before registration. Order matters. Enforce MFA on a population that hasn't registered methods yet and you hard-lock the unregistered — they can't sign in to register because they're being blocked for not having registered. Registration must lead enforcement, always, ideally with a registration campaign and a grace window first.

05The reset flow — and where it silently fails

In hybrid tenants, "reset succeeded" and "the password actually changed" are two different claims.

User: reset "forgot password" Verify methods registered? Prove 1–2 methods Set in Entra cloud password Writeback Entra Connect On-prem AD updated THE SILENT FAILURE If writeback is misconfigured, or the connector account lacks reset permission on the OU, Entra shows the reset as succeeded — but the on-prem password never changes. The user is still locked out.
Where "success" lies. The cloud half of the reset can complete perfectly while the writeback half fails silently. In a hybrid tenant, validating writeback health — connector permissions, OU reset rights, sync status — is not optional; it's the difference between a working reset and a false green light.

Risk policies can block the recovery they're meant to enable

If a user's session is flagged risky, a risk-based Conditional Access policy may block sign-in — including the SSPR flow that would let them recover. Map how your risk policies interact with SSPR before enabling both, or a locked-out user in a "risky" state has no self-service path back and lands straight on the help desk.

06The safe rollout sequence

Never big-bang. Classify, validate, pilot, expand, enforce.

Everything above resolves into an order of operations. Classify the tenant into humans vs. service vs. shared vs. stale. Refine to the real human population. Validate a small pilot of users who are genuinely ready — methods registered, writeback confirmed working for them — and prove the end-to-end reset actually changes the on-prem password. Run a registration campaign so the wider population gets enough methods before any enforcement. Expand in controlled waves, watching help-desk volume as your signal. Only then enforce. Each step is reversible; a big-bang enablement is not.

The principle

SSPR and MFA don't fail on the toggle — they fail on the assumptions underneath it. Refine the population, verify registration and writeback for real, and lead with registration before enforcement. The rollout you can reverse is the rollout that won't lock anyone out.

Further reading

Comments

Questions or corrections welcome. Sign in with GitHub to join the thread.