
You’ve heard the pitch a hundred times: multi-factor authentication blocks 99% of account takeovers. MFA is essential. If you’re not using MFA, you’re negligent.
And yet, here you are, years into running an IT environment where MFA is partially deployed, inconsistently enforced, and constantly generating help desk tickets.
The problem isn’t understanding that MFA matters. The problem is deploying it across a real environment with legacy systems, resistant users, and edge cases that never fit the vendor demo. This is the practical guide for IT teams who are past the “should we” question and deep into the “how do we actually” implementation.
Not all MFA is equal. Understand the hierarchy:
FIDO2 Security Keys / Passkeys: Hardware devices (YubiKeys, Google Titan) or device-bound credentials (passkeys) that use public-key cryptography. The user possesses something unique, and the authentication is cryptographically bound to the legitimate site.
Why it’s strongest: Cannot be phished. An attacker can clone a login page, but they can’t make a security key authenticate to it. The cryptographic handshake only works with the real service.
Smart Cards / PIV: Certificate-based authentication using physical cards. Common in government and some enterprises. Strong, but requires infrastructure (card readers, PKI management).
Passkeys (Platform/Synced): Passkeys stored in platform credential managers (iCloud Keychain, Google Password Manager) or password managers. Still phishing-resistant through the cryptographic binding, but syncing introduces different risks than hardware keys.
Number Matching Push Notifications: Modern push MFA that requires the user to enter a number from the login screen into their authenticator app. Resistant to MFA fatigue attacks (spam pushing until user accepts) but not to real-time phishing proxies.
TOTP Authenticator Apps: Google Authenticator, Microsoft Authenticator, Authy—apps that generate 6-digit codes. Better than password-only, but codes can be phished in real-time.
Push Notifications (Basic): User gets a push, taps approve. Convenient but vulnerable to MFA fatigue and real-time phishing.
SMS/Voice Codes: One-time codes sent via text or call. Vulnerable to SIM swapping, SS7 attacks, and real-time phishing. Still blocks opportunistic attackers but fails against targeted attacks.
Email Codes: One-time codes sent to email. If the attacker has email access, this provides no protection.
The goal is moving up this hierarchy over time, not staying stuck at the bottom because “we have MFA.”
Attempting to enable MFA for everyone on Monday creates chaos. IT teams burn out, users revolt, and executives demand exceptions.
Start with accounts where compromise would be catastrophic:
These users should receive the strongest available MFA—ideally FIDO2 keys. The investment is justified by the risk reduction. Hardware keys cost $25-50 each; a compromised admin account costs orders of magnitude more.
Provide hands-on enrollment support for this group. Don’t email instructions and expect compliance. Schedule sessions, walk through setup, handle issues personally.
Before rolling MFA to all applications, prioritize:
For this phase, TOTP apps are usually the practical choice. Most users already have smartphones; authenticator app enrollment is straightforward.
Provide multiple enrollment options: desktop walkthrough, video tutorial, help desk support. Different users need different help.
Extend to all remaining applications that support MFA. At this stage, you’re catching the long tail—less critical systems that still shouldn’t be password-only.
Conditional access policies help here: require MFA only when accessing from new devices, untrusted networks, or unusual locations. This balances security with user friction for lower-risk scenarios.
Every MFA rollout hits the same wall: systems that don’t support modern authentication.
Older applications that only understand username/password against LDAP can’t do MFA directly. Options:
Fronting with a reverse proxy: Place an authentication proxy (like Duo Access Gateway, Azure AD Application Proxy, or open-source options like Authelia) in front of the legacy application. Users authenticate to the proxy with MFA, then the proxy authenticates to the application.
Drawbacks: Requires network architecture changes, may break if the application has complex authentication flows.
LDAP proxy with MFA: Products like Duo’s Authentication Proxy can intercept LDAP authentication and inject an MFA prompt. The legacy application thinks it’s doing simple LDAP auth; the user sees an MFA challenge.
Drawbacks: Doesn’t work with all LDAP implementations; can create latency issues.
Accept the risk and document it: Sometimes the legacy system is isolated, has limited sensitive data, and modernization is planned. Document the exception, implement compensating controls (network segmentation, enhanced monitoring), and revisit when the system is replaced.
Service accounts can’t respond to MFA prompts. They authenticate programmatically, often in automated processes where no human is present.
Solutions:
Client certificates: Where supported, replace passwords with certificate-based authentication for service accounts.
API tokens with IP restriction: Limit API tokens to specific source IPs. An attacker who steals the token can’t use it from their infrastructure.
Short-lived tokens with automated rotation: OAuth client credentials with frequent rotation reduce the window of exposure.
Privileged Access Management (PAM): Vault service credentials, automate rotation, and audit all access.
What doesn’t work: Requiring MFA for service accounts. The automation breaks. Find alternative controls.
Every organization needs emergency access accounts that bypass normal authentication—for when the identity provider is down, the MFA service is unavailable, or the admin who knows the setup is unreachable.
Break-glass accounts are high-risk by nature. Protect them differently:
Don’t just exempt break-glass accounts from MFA without compensating controls.
MFA rollouts fail more often from user resistance than technical issues.
“It’s too inconvenient.” Modern authentication—especially with passkeys or security keys—is often faster than typing passwords. Demonstrate this. Convenience wins converts.
For TOTP, acknowledge the friction but contextualize: “Entering a code takes 10 seconds. Recovering from account compromise takes weeks. This is a worthwhile trade.”
“What if I lose my phone?” Ensure backup options are documented and accessible: backup codes, alternate authentication methods, clear process for IT to help reset. Fear of lockout is legitimate; address it proactively.
“I have a personal phone and won’t install work apps.” Offer alternatives: hardware security keys work without installing anything. TOTP apps store nothing sensitive. Company-provided dedicated authenticator devices are possible for truly resistant users.
“This doesn’t work with X.” Take these seriously. Every edge case that goes unaddressed becomes an exception that undermines the rollout. Fix the technical issues, document the workarounds, or acknowledge the temporary exception with a plan to resolve.
Start communication before enforcement. Give users time to understand what’s coming and why.
Lead with “why” rather than “you must.” Phishing stories are more compelling than policy citations. “Last month, someone at a company like ours had their account compromised because they only had a password. Here’s what happened…” makes the risk concrete.
Provide clear, step-by-step instructions for the least technical user. Screenshots, videos, simple language. Assume nothing about baseline knowledge.
Celebrate completion rather than punishing delay. “Our team is now fully protected” is better than “These people still haven’t enrolled.”
MFA rollouts spike help desk volume. Plan for it:
Under-resourced support turns a security improvement into an organizational frustration.
Passkeys are the evolution of FIDO2 authentication, designed to replace passwords entirely with cryptographic credentials stored on devices or synced through credential managers.
Support is growing but not universal. Major platforms (Apple, Google, Microsoft) support passkeys. Major sites (Google, GitHub, PayPal) support passkey login. But your internal applications, SaaS tools, and legacy systems? Coverage is inconsistent.
Enterprise management is maturing. Early passkey implementations were consumer-focused. Enterprise features—provisioning, auditing, recovery, device management—are catching up but not fully mature across all platforms.
Synced passkeys introduce new considerations. Passkeys synced through iCloud or Google add convenience but also mean credentials exist in cloud services. For high-security environments, hardware-bound passkeys (traditional security keys) may be preferred.
User mental models are still forming. Users understand passwords. They’re learning MFA. Passkeys add another paradigm. Education and smooth UX are essential for adoption.
For most organizations today, passkeys work well for:
Passkeys are not yet ready to fully replace MFA for:
A reasonable approach: begin passkey adoption for new deployments and modern applications while maintaining traditional MFA for legacy systems. Over time, as support improves, migrate more authentication to passkeys.
Track these metrics:
Report monthly during rollout, quarterly once stable. Use trends to identify problems (rising exceptions, increasing help desk volume) and successes.
MFA won’t save you from everything. Real-time phishing proxies capture MFA tokens. Session hijacking bypasses MFA entirely. Token theft from infostealers means authentication already happened before the attack.
MFA is necessary but not sufficient. It stops opportunistic credential attacks, which are the majority of attempts. But it’s one layer in a defense-in-depth strategy, not a silver bullet.
Deploy it. Deploy it well. And then keep building the other layers you need.