Blue Team of One field notes · security

HomeIdentity SecurityAuthentication & MFA

Authentication · risk & mitigation

Temporary Access Pass is a loaded gun: using it without shooting yourself

People call TAP an "MFA bypass." It isn't — and that misunderstanding is exactly what makes it dangerous, because teams either ban it or wave it through without controls. A TAP is a strong credential that can bootstrap other credentials. Issued carelessly, it's a clean path to persistent access on any account it touches. Here's the real risk model, and how to configure it so it doesn't become your softest target.

A Temporary Access Pass is a time-limited passcode an admin issues so a user can sign in and register other authentication methods — onboard a new hire, recover a locked-out account, bootstrap passwordless. Useful. But the framing most people carry ("it skips MFA") is wrong in a way that hides the actual danger. Let's fix the model first, because the mitigations only make sense once you see what you're really defending against.

01It's not an MFA bypass — it's worse

A TAP satisfies MFA as a strong credential. That's the problem, not the reassurance.

A TAP doesn't skip multi-factor auth — it satisfies it, counting as a strong credential in its own right. That sounds reassuring until you follow the consequence: because it's strong enough to authenticate, it's strong enough to register new authentication methods. A TAP is a credential whose entire purpose is to mint other credentials.

Why "bootstrap" is the scary word

Whoever holds a valid TAP for an account can sign in and enroll a passkey, register Authenticator, or set up Windows Hello — their own. That's not one session of access; it's persistent access that survives the TAP's expiry, because the attacker now owns a permanent method on the account. A stolen password gets you in until it's reset. A stolen TAP gets you in, lets you plant your own key, and then you don't need the TAP anymore.

This is not theoretical. Documented tradecraft includes creating a TAP from a compromised admin account to seize a target, and the service-desk social-engineering playbook that groups like Scattered Spider have run repeatedly — talk the help desk into issuing a credential, then register an attacker-controlled MFA device for persistence. TAP is a first-class tool for exactly that pattern.

02The four risks, concretely

Name them so the controls have something to bite on.

RiskWhat it looks like
Persistence bootstrapA leaked/stolen TAP is used to register the attacker's own passkey or Authenticator — access outlives the TAP
Help-desk social engineeringAn attacker calls posing as a locked-out user; the agent issues a TAP over the phone; game over
Privileged-account onboardingA TAP issued for an admin (or an account eligible for admin roles) hands over the crown jewels
Over-long / reusable passesA multi-use, multi-day TAP is a durable shared secret — everything wrong with a temporary password, dressed up as modern

03Lock the policy down to the floor

The defaults are generous. The allowed range is alarming. Configure deliberately.

The TAP policy (Entra ID → Authentication methods → Policies → Temporary Access Pass) sets tenant-wide lifetime, one-time-use, and length. Here are Microsoft's defaults and — importantly — how far the range actually stretches:

SettingDefaultAllowed rangeWhat to set
Minimum lifetime1 hour10 min – 30 daysKeep low
Maximum lifetime8 hours10 min – 30 daysCap at ~1 hour (8h max, not 30d)
Default lifetime1 hour10 min – 30 days1 hour
One-time useFalseTrue / FalseTrue — enforce single-use
Length88 – 48 charactersLeave at 8+ (longer for higher assurance)

The 30-day maximum is a trap, and one-time-use defaults to OFF

That the maximum lifetime can be set to 30 days tells you the guardrails are yours to build — a month-long, reusable passcode is a standing backdoor. Worse, one-time use defaults to False, meaning out of the box a TAP can be used repeatedly for its whole validity window. Set one-time use to True and cap the maximum lifetime to hours, not days. If you never lower these, you've left the barn door open by default.

# create a strictly-scoped, single-use TAP (Graph PowerShell)
$props = @{ isUsableOnce = $true; lifetimeInMinutes = 60 } | ConvertTo-Json
New-MgUserAuthenticationTemporaryAccessPassMethod -UserId [email protected] -BodyParameter $props

# audit: does this user currently have a TAP registered?
Get-MgUserAuthenticationTemporaryAccessPassMethod -UserId [email protected]

04Scope it — and keep it away from admins

Enabling TAP tenant-wide for everyone is the mistake.

The policy lets you include and exclude specific groups. Use that hard. TAP should be enabled only for the populations that genuinely need it — a controlled onboarding group, a trained recovery workflow — not switched on for the whole tenant by default.

Exclude privileged accounts from the TAP policy entirely

The single highest-value control here: exclude your admin / privileged-role-eligible accounts from TAP scope. A TAP that can onboard a fresh credential onto a Global Administrator is the worst-case bootstrap. If a privileged user genuinely needs recovery, handle it as a deliberate, heavily-verified exception — not a standing capability. Note also who can issue: only Privileged Authentication Administrators can create a TAP for admins; ordinary Authentication Administrators can't. Keep that boundary, and keep the privileged-issuer role tightly held.

05Fence it with Conditional Access authentication strengths

Let TAP in for bootstrap — and nowhere else.

Policy scoping controls who can hold a TAP; Conditional Access authentication strengths control what a TAP is allowed to do. The pattern that contains it:

# two custom authentication strengths
Bootstrap/Recovery strength   → INCLUDES Temporary Access Pass
                                (scope: onboarding/recovery flows, registration)
Normal sign-in strength       → EXCLUDES TAP; requires phishing-resistant
                                (passkey / WHfB) for day-to-day access to resources

With this split, a TAP works for the narrow job of getting a user to the point where they can register a real, phish-resistant method — and is rejected everywhere else. It can't be used to walk into sensitive apps or admin portals. Roll the strengths out in report-only first so you see what a TAP would and wouldn't satisfy before you enforce.

06The session outlives the pass — close that gap

A subtle one that surprises people: TAP expiry doesn't kill an existing session.

You'd assume that when the TAP expires, access ends. It doesn't, entirely. Tokens issued during a TAP sign-in are capped at the TAP's expiration at the moment of issuance — but TAP expiry does not retroactively invalidate a session that's already established. Session lifetime is governed by Conditional Access, so a user (or attacker) who signed in with a TAP can retain access longer than the TAP's lifetime depending on your CA session config.

Pair TAP with a tight sign-in frequency

To stop a TAP-established session from lingering, apply a short sign-in frequency to the flows where TAP is allowed, so the session is forced to re-authenticate (and can't ride on the expired pass). This is the same reason CAE matters for revocation — a credential going away doesn't automatically end the sessions it created. Don't assume "the TAP expired" means "the access is gone."

07Issue and monitor like it's a privileged action

The process around the TAP matters as much as the policy.

Even perfectly configured, a TAP is only as safe as the process that hands it out. The operational controls:

ControlWhy
Verify identity out-of-band before issuingKills the help-desk phone-call attack — never issue on a caller's say-so alone
Deliver over a secure channelNever email/SMS a TAP in clear; use a secure ticketing / one-time-secret tool
Alert on every TAP creationA TAP registered on a privileged (or unusual) account is a high-signal event — watch for it
Alert on TAP → new-method registrationA TAP sign-in immediately followed by a passkey/Authenticator enrolment is the persistence pattern
Expire and delete promptlyDon't leave used or stale TAPs lying on accounts

Treat "a TAP was issued" and "a new auth method was registered right after a TAP sign-in" as detections, not just log lines — that sequence is precisely what an attacker's persistence step looks like, and it's the same telemetry you'd correlate in a linkable-token-identifier investigation.

The takeaway

TAP isn't an MFA bypass — it's a strong credential that mints other credentials, which is more dangerous, not less. Contain it on every axis: lock the policy to short-lived, single-use passes (the 30-day, reusable defaults are a backdoor); scope it to onboarding/recovery groups and exclude privileged accounts; fence it with Conditional Access authentication strengths so it can bootstrap and nothing else; pair it with a tight sign-in frequency so the session doesn't outlive the pass; and verify identity out-of-band before issuing, with alerting on issuance and on the TAP→registration sequence. Used that way, TAP is a safe onboarding tool. Used the way it ships by default, it's your softest target.

Further reading

Anonymized from real deployment work; policy behaviour reflects Entra TAP as documented in 2026 and may change. Verify settings against current Microsoft guidance before enforcing.

Comments

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