Skip to main content
green gradient background, "The Future of Application Security Is Already Here." and a read the report button.
Passkeys at 5 Billion: Why Your Rollout Still Isn't WorkingFIDO & Passkeys
6 min readFor Identity Governance Administrators

Passkeys at 5 Billion: Why Your Rollout Still Isn't Working

With 5 billion passkeys in use and 68% of organizations deploying them for workforce authentication, you'd think we'd have it figured out. We haven't. The gap between "passkeys are live" and "passkeys actually work" boils down to six recurring mistakes in rollouts.

These aren't minor issues. They're structural problems rooted in treating passwordless authentication as a simple feature toggle instead of a fundamental shift in authentication architecture.

Why These Mistakes Keep Happening

Most organizations see passkey deployment as a credential replacement project. You're swapping passwords for FIDO2 authenticators, right? Not quite. You're changing how your identity provider handles authentication ceremonies, how your directory stores credential metadata, how your session broker validates assertions, and how your Policy Decision Point evaluates risk signals.

This isn't a swap. It's a rebuild of your authentication control plane. Without this perspective, passkeys may technically work but fail operationally.

Mistake 1: Treating Passkeys as a Universal Replacement

Why it happens: The marketing pitch is tempting. Deploy passkeys, retire passwords, problem solved. Leadership wants a clean migration timeline with a hard cutover date.

The consequence: Users are stranded when authenticating from shared devices or environments where they can't register a passkey. Your support queue fills with "I can't log in from my work laptop" tickets because that machine doesn't support platform authenticators, and your rollout didn't account for roaming authenticators.

The fix: Design a tiered authentication model from the start. Use passkeys as the primary method for enrolled users on compatible devices. Keep FIDO2-compliant Multi-Factor Cryptographic Devices as a fallback for shared environments. Maintain Time-Based One-Time Password as a recovery path, not a permanent option. Document which user populations get which tier and why. Your directory schema should track authentication method eligibility per user, not just per organization.

Mistake 2: Ignoring Back-Channel Communication Failures

Why it happens: Your existing OAuth 2.0 flows use Front-Channel Communication for everything because that's how your SaaS integrations were built. Passkeys require the relying party to verify attestation and assertion signatures, meaning your authorization server needs to communicate directly with your FIDO2 metadata service.

The consequence: Authentication succeeds at the credential level but fails at the policy level. Your Session Broker can't validate the authenticator's attestation statement because it never established a Back-Channel Communication path to your Policy Decision Point. Users see "authentication successful" followed by "access denied" with no explanation.

The fix: Map your current authentication flow end-to-end before deploying passkeys. Identify every point where your authorization server, Session Broker, and Policy Decision Point need to exchange data. If you're running Authorization Code Flow with Proof Key for Code Exchange, ensure your token endpoint can reach your FIDO2 metadata repository without routing through the user's browser. This infrastructure isn't optional; it's how you prevent replay attacks and validate authenticator trust chains.

Mistake 3: Skipping Federation Metadata Updates

Why it happens: Your WS-Federation or SAML integrations were configured years ago. The Federation Metadata hasn't been updated since the initial setup. Passkeys are "just another authentication method," so why would federation config change?

The consequence: Internal users authenticate with passkeys successfully, but federated partners reject the assertion because your Federation Metadata still advertises password-based authentication as your only supported method. The identity provider sends a FIDO2 assertion, the service provider expects a password credential, and the handshake fails.

The fix: Update your Federation Metadata to declare FIDO2 as a supported authentication context class. If you're using WS-Federation, add the appropriate authentication context URI to your metadata document. For SAML federations, update your metadata to include AuthnContextClassRef values that correspond to phishing-resistant authentication. Notify your federation partners about the change and provide a migration window. This requires coordination, not just configuration.

Mistake 4: Assuming Passkeys Eliminate Phishing Risk

Why it happens: FIDO2 is phishing-resistant by design. The authenticator binds to the origin, so users can't be tricked into authenticating to a lookalike domain. Marketing materials say "phishing-proof." You brief leadership that passkeys solve your phishing problem.

The consequence: Attackers shift tactics. They don't phish credentials anymore; they phish session tokens. A user authenticates with a passkey, establishes a valid session, and then gets social-engineered into installing malware that steals the session cookie. Your authentication was phishing-resistant. Your session management wasn't.

The fix: Passkeys are phishing-resistant authentication, not phishing-proof authorization. Implement session binding that ties the session token to the authenticator used during login. Use token binding or device-bound session cookies that can't be replayed from a different machine. Configure your Session Broker to re-challenge users with their passkey for high-risk actions, even mid-session. Your Zero Trust architecture should treat every request as untrusted, regardless of initial authentication.

Mistake 5: Failing to Plan for Credential Recovery

Why it happens: Passwords have a recovery path: email reset links, security questions, SMS codes. Passkeys are device-bound, so teams assume users will "just register a backup passkey." You don't build a formal recovery workflow because the protocol doesn't require one.

The consequence: A user's laptop dies. They registered one passkey, stored on that device, with no backup. Your identity provider has no recovery mechanism except "contact IT support." Your helpdesk can't securely verify the user's identity without their primary authenticator. You end up resetting their account to password authentication, defeating the entire purpose of the passkey rollout.

The fix: Require users to register at least two passkeys during enrollment: one platform authenticator and one roaming authenticator stored separately. Build a recovery workflow that uses a Multi-Factor Cryptographic Device as a secondary proof mechanism. Document your account recovery process before going live, not after your first user loses access. If deploying to a workforce environment, integrate with your existing identity verification process. Don't invent a new one just for passkey recovery.

Mistake 6: Treating Passkey Deployment as an Identity Project

Why it happens: Passkeys are authentication credentials, so this is clearly an IAM initiative. You assign it to your identity governance team, they configure the identity provider, and they call it done.

The consequence: Your endpoint management team wasn't consulted, so they don't know which devices support platform authenticators. Your application team wasn't involved, so they haven't updated their apps to request passkey authentication. Your security operations team doesn't know how to investigate a suspicious passkey registration because it's not in their runbooks. You deployed the capability without deploying the operational model.

The fix: Passkey deployment is a cross-functional project. Identity governance owns the policy. Endpoint management owns device compatibility and platform authenticator availability. Application development owns the authentication ceremony implementation. Security operations owns monitoring and incident response for passkey-related events. Before you start, map which teams own which components and build a RACI matrix. Your first milestone isn't "passkeys enabled." It's "all teams can support passkey authentication in production."

Prevention Checklist

Before deploying passkeys to production:

  • Document which user populations will use passkeys vs. alternative authentication methods.
  • Ensure your authorization server can communicate with your FIDO2 metadata service via Back-Channel Communication.
  • Update your Federation Metadata to reflect FIDO2 as a supported authentication context.
  • Configure your Session Broker to re-challenge users with their passkey for high-risk actions.
  • Require users to register at least two passkeys during enrollment.
  • Build a formal account recovery process that doesn't revert users to password authentication.
  • Have your endpoint management team audit device compatibility across your fleet.
  • Ensure your application teams have updated their authentication flows to request passkey credentials.
  • Equip your security operations team with runbooks for investigating suspicious passkey registrations.
  • Test the entire flow from enrollment through recovery in a staging environment that mirrors production.

Passkeys work. The protocol is solid, the adoption is real, and the security benefits are measurable. What doesn't work is treating them like a configuration change instead of an architecture shift. Fix these six mistakes, and your passkey deployment becomes what it should be: phishing-resistant authentication that actually scales.

Promotional banner graphic asking if you are ready for PCI DSS 4.0 with a call-to-action to get the guide

You Might Also Like