Skip to content
authentication

Passkey and Fallback Capability Matrix: Web, Native Apps, Managed Recovery

Updated 2026-09-18 · 13 min read · By @guptadeepak

Key takeaways

  • Passkey support is three questions, not one: web, iOS native, Android native. Vendors answer one and go quiet on the rest.
  • The real buying question is who sends the fallback message. Auth0 and Authsignal both hand you an SMS provider to wire up yourself.
  • WorkOS ships passkeys in the hosted UI only, with no API path and no self-service passkey management screen.
  • Supabase Auth and Firebase Authentication document no WebAuthn support at all. Their factors are TOTP and phone.
  • An SMS fallback caps the account at SMS strength. NIST treats PSTN out-of-band as a restricted authenticator.
  • Recovery is where the phishing win gets handed back. Design it before the vendor shortlist, not after the contract.

If you are shortlisting a vendor to ship passkeys across a web app and a native mobile app, two facts decide the project and neither one appears on a pricing page. The first is which of your three surfaces the vendor actually documents a passkey ceremony for. The second is whether the fallback factor is a service the vendor operates or a set of API hooks you point at a provider you contract yourself.

This page is a capability reference, checked against vendor documentation on 18 September 2026. It is not a shortlist and it does not rank anybody. The adoption view, which is a different question, lives on the passkey orchestration page.

How to read the cells

Three values appear, and they mean different things.

  • Documented. The vendor's own documentation describes it, and the page is cited below the table.
  • Not documented. We looked at the vendor's documentation for this capability and it is not described there. That is a statement about the documentation, not a claim that the product cannot do it.
  • Not checked in this pass. We did not verify this cell against a primary source on this date. Absence of a check is not evidence of absence.

That third value exists deliberately. Filling unknown cells with a confident tick is how vendor matrices become wrong six months after publication.

Passkey support by surface

VendorWebiOS nativeAndroid nativeDomain and RP ID constraint documented
Auth0Documented, Universal LoginDocumented, native passkeys for iOSDocumented, native passkeys for AndroidNot checked in this pass
Amazon CognitoDocumented, WEB_AUTHN first factorVia the same choice-based API, no platform-specific guide citedSame as iOSNot checked in this pass
Entra External IDDocumented, passkey (FIDO2) as MFA and passwordlessNative auth supports local account methods only, passkey via web fallbackSame as iOSRegistration requires a custom URL domain
WorkOS AuthKitDocumented, hosted UI onlyNot documentedNot documentedCustom domain required before enabling passkeys in production
ClerkDocumentedDocumented via Expo setup guideDocumented via Android setup guideNot checked in this pass
StytchDocumentedDocumented, iOS SDK passkey methodsDocumented, Android SDK passkey methodsNot checked in this pass
DescopeDocumented, Passkey and Biometrics flow componentsDocumented, iOS SDKDocumented, Android SDKPasskeys are domain specific, multi-domain needs a flow condition
AuthsignalDocumentedDocumented, iOS SDK with no-credential handlingDocumented, Android SDK with no-credential handlingNot checked in this pass
CorbadoDocumented, overlay in front of an existing IdPDocumented as part of the same overlayDocumented as part of the same overlayOverlay owns the WebAuthn server, your IdP keeps the users
Supabase AuthNot documentedNot documentedNot documentedNot applicable
Firebase AuthNot documentedNot documentedNot documentedNot applicable

Two rows deserve a sentence before you scroll past them.

Entra External ID is the sharpest example of why "supports passkeys" is not a useful answer. Microsoft documents passkey (FIDO2) as both an MFA method and a passwordless primary method in external tenants. It also documents that only email plus password and username plus password local account users can register one, that registration requires a custom URL domain, and that the user must complete MFA before registering. Users who sign in through an external identity provider or through email one-time passcode cannot register a passkey at all.

Supabase Auth and Firebase Authentication are the two rows where the honest answer is a blank. Supabase documents exactly two MFA factor types, an authenticator app using TOTP and phone messaging. Firebase documents passwords, phone numbers, email link, federated providers, and TOTP MFA on the Identity Platform tier. Neither documentation set describes a WebAuthn ceremony. If you are on either and passkeys are the requirement, you are looking at an overlay or a migration, not a configuration change.

Fallback that ships in the product, and who sends it

VendorEmail code or linkSMS OTPTOTPRecovery codesWho sends the message
Auth0Not checked in this passDocumentedNot checked in this passNot checked in this passYou. Configure your own phone messaging provider, Twilio or custom, one per tenant
Amazon CognitoDocumented, EMAIL_OTP first factorDocumented, SMS_OTP first factorDocumented, authenticator app MFANot checked in this passYou. Email OTP requires the Essentials plan or higher plus your own Amazon SES configuration
Entra External IDDocumented, first and second factor with a caveatDocumented, second factor onlyNot checked in this passNot checked in this passMicrosoft. SMS is a paid add-on requiring a linked subscription, with opt-in regions and CAPTCHA
WorkOS AuthKitDocumented, Magic Auth email codeNot documentedDocumented, MFANot checked in this passNot checked in this pass
ClerkDocumented, email code and email linkDocumented, SMS codeDocumentedDocumented, backup codesNot documented on the page checked
StytchDocumented, email magic links and email OTPDocumented, SMS OTP and WhatsApp OTPDocumented, with recovery codesDocumented, TOTP recovery codesNot checked in this pass
DescopeDocumented, OTP, magic link, enchanted link, embedded linkDocumented, OTP and WhatsApp nOTPDocumented, authenticator appsDocumented, recovery codesNot checked in this pass
AuthsignalDocumented, email OTPDocumented, SMS OTPDocumentedNot checked in this passYou. Pick Twilio, Bird, MessageMedia, TNZ, Modica, or a webhook in the Authsignal portal
CorbadoInherited from the IdP underneathInherited from the IdP underneathInherited from the IdP underneathInherited from the IdP underneathWhoever runs the IdP you kept
Supabase AuthNot applicable to MFA, phone and TOTP onlyDocumented, phone factorDocumented, app authenticatorNot checked in this passNot checked in this pass
Firebase AuthDocumented, email link sign-inDocumented, phone authDocumented, TOTP MFA on Identity PlatformNot checked in this passNot checked in this pass

Managed service versus something you wire up

This is the column that decides the project plan, and it is the one that never makes the comparison chart.

A CIAM vendor can list SMS OTP as a feature while shipping nothing that sends a text message. What it ships is a challenge orchestration layer, a template editor, and a place to paste credentials for a provider you sign a separate contract with. Auth0 documents exactly this: you configure one phone messaging provider per tenant, Twilio or a custom provider, and it carries all SMS and voice. Authsignal, a passkey specialist rather than a full platform, does the same thing with a wider provider list and a webhook escape hatch.

Amazon Cognito is a variant of the same pattern inside one cloud bill. Email one-time passcode as a first factor requires the Essentials feature plan or higher and your own Amazon SES configuration. The default Cognito sender exists, carries a daily cap, and the documentation says plainly that the default limit is below production volume for typical environments.

Microsoft Entra External ID is the clearest managed case in the table and it still comes with strings. Microsoft delivers the SMS. It is a second factor only, never a first factor. It is billed as an add-on against a linked Azure subscription, and Microsoft documents that if the subscription expires or is cancelled, users can no longer authenticate by SMS, which can lock them out depending on your policy. Some regions are deactivated by default and need an explicit opt-in.

Three questions settle this in a vendor call.

  1. When an SMS fails to deliver in Indonesia at 2am, whose support queue is it in.
  2. Does the per-message cost sit in the identity contract, a telecom contract, or a cloud bill.
  3. If the messaging contract lapses, does login break, and for which users.

The first question is the one that changes answers. Vendors who operate delivery answer it immediately. Vendors who do not tend to explain the architecture instead.

What each fallback costs you in security

A fallback is not a feature you add. It is a ceiling you set. The account is exactly as strong as the weakest path into it, and the passkey does nothing about the path the attacker chooses.

  • SMS OTP. The weakest common option. SIM swap, SS7 interception, and adversary-in-the-middle proxies all defeat it, and none of them care that a passkey is registered. NIST designates PSTN out-of-band as a restricted authenticator, which obliges the relying party to warn users about the risk and to offer a non-restricted alternative. Shipping passkeys next to an always-available SMS button produces an SMS-grade account with a passkey-grade slide deck.
  • Email OTP or magic link. Only as strong as the mailbox, which for most consumers is a Google or Microsoft account that is itself the recovery root for everything else. Phishable in real time by the same proxy kits. Acceptable as one signal among several. Dangerous as the single self-service path back into a high-value account.
  • TOTP. Not SIM-swappable and not tied to a carrier, which puts it clearly above SMS. Still phishable through an adversary-in-the-middle proxy, because the user types the code into whatever page asked for it. Good second rung. Not a passkey substitute.
  • Recovery codes. Strong against remote attack, weak against human behaviour. Users screenshot them, mail them to themselves, or lose them. They work best generated at enrolment, shown once, and paired with a support path for the majority who will not keep them.
  • Help-desk or agent-assisted reset. The highest-assurance option and the most-attacked one. Its strength is entirely the verification script the agent follows. An agent who can reset a passkey after confirming a date of birth has converted your phishing-resistant deployment into a social-engineering target.

Recovery is the real failure mode

Every passkey rollout eventually meets the same wall, and it is not enrolment. It is the user on a brand new phone, on a different platform from the one that holds their synced credential, with a passkey that will not travel.

That user does not fail at the passkey prompt in an interesting way. On iOS, a missing credential and a cancelled prompt return the same error, which is why Authsignal's own mobile guidance tells you to treat both cases identically and present the backup screen. The user fails at whatever you put behind that screen, and whatever you put behind that screen is your actual authentication assurance level.

Having run identity at scale at LoginRadius, across a userbase that grew past a billion identities, the pattern that repeats is consistent. Teams budget carefully for the passkey ceremony and treat recovery as a two-week task at the end. Recovery is then built from whatever channel is cheapest to turn on, which is email or SMS, and the phishing resistance that justified the whole project quietly disappears into the reset flow.

Two design rules follow from that, and neither depends on which vendor you pick.

The first is to enrol the fallback before the passkey, not after. Authsignal documents this as a product pattern: prompt for the passkey only once another factor is bound to the user, so the backup always exists at the moment it is needed. It costs one extra screen at signup and removes the entire class of "new device, no way in" tickets.

The second is to treat recovery as a separate risk decision from login. Rate limit it harder. Add a delay with a cancel notification for high-value accounts. Require more than one weak signal rather than one. The full treatment is in account recovery design, which is the companion to this page.

Running this as an evaluation

Ask for a working demo, not a capability sheet, and ask for it on the surface you actually ship.

  1. Register a passkey on the vendor's hosted or embedded web flow, on your own domain, not theirs.
  2. Sign in on a native build on both iOS and Android, using the same account.
  3. Delete the passkey from the platform credential manager, then sign in again and watch what the fallback screen offers.
  4. Do the same on a device from the other platform vendor, to force the cross-platform case that synced credentials do not cover.
  5. Ask who sent the email and the text message in steps three and four, and ask for the contract that covers it.

Step five is the one that reorders shortlists. It also tends to surface the gap between a vendor that operates a fallback and a vendor that orchestrates one.

Where this page stops

Anything marked "not checked in this pass" is an open item, not a negative finding. The cells will be filled on the next verification sweep rather than guessed at now.

Several vendors with a Compass profile have no row above. That list includes Keycloak, FusionAuth, SuperTokens, Hanko, Beyond Identity, MojoAuth, Transmit Security, and Frontegg. None was re-verified against its documentation on this date. They are left out rather than carried over from an older check, and their capability records live on their profiles.

If you are staying on a platform whose passkey answer is thin and the only failing axis is enrolment, the overlay route is covered in passkey overlays versus CIAM. If SMS is still your default second factor, the migration sequence is in deprecating SMS OTP.

Related vendors

Where to next

FAQ

Which identity vendors support passkeys in native iOS and Android apps, not just on the web?
Five vendors documented a native path as of 18 September 2026. Auth0 documents native passkeys for Android and iOS. Stytch exposes Passkeys and WebAuthn methods in its iOS, Android and React Native SDK references. Descope ships iOS and Android SDKs. Clerk publishes Android and Expo setup guides. Authsignal documents iOS, Android, React Native and Flutter passkey SDKs with no-credential error handling. WorkOS AuthKit documents passkeys for the hosted UI only. Microsoft Entra External ID native authentication supports local account methods only, so a passkey challenge in a native app falls back to the web.
Which vendors provide managed SMS fallback rather than making me bring my own provider?
Fewer than the category implies. Auth0 documents configuring your own phone messaging provider, Twilio or custom, one per tenant. Authsignal has you pick an SMS provider in its portal from Twilio, Bird, MessageMedia, TNZ, Modica, or a webhook. Microsoft Entra External ID does deliver SMS itself, but only as a second factor, only as a paid add-on, and only while a linked subscription is active. Amazon Cognito delivers through AWS messaging configured on your own user pool. Treat managed SMS as a thing to confirm in a contract, not a thing to assume.
Is cross-device passkey sign-in something the vendor has to build?
No. Hybrid transport, the QR-plus-Bluetooth flow that lets a phone authenticate a desktop session, is implemented by the browser and the operating system. What the vendor controls is the relying party ID and domain binding, and that is where cross-device and native-app passkeys actually break. WorkOS requires a custom domain before you enable passkeys in production. Entra External ID requires a custom URL domain for passkey registration. Descope's passkeys are domain specific and multi-domain projects need a flow condition.
What is the security cost of adding an SMS fallback to a passkey login?
The account becomes as strong as the SMS path, not as strong as the passkey. SIM swap, SS7 interception, and adversary-in-the-middle proxies all defeat an SMS code, and none of them are defeated by the passkey sitting unused next to it. NIST designates PSTN out-of-band authenticators as restricted, which obliges the relying party to warn users and to offer a non-restricted alternative. If you must keep SMS, keep it as a recovery path with rate limits and delays, not as an equal sign-in button.
How should I compare fallback options during a vendor evaluation?
Ask for three things in writing. First, which surfaces the passkey ceremony is documented for: web, iOS native, Android native. Second, whether each fallback factor is delivered by the vendor or by a provider you contract separately, and who is on the hook when delivery fails at 2am. Third, the exact recovery flow when a user has no passkey and no access to the fallback channel, including whether a support agent can reset it and what that agent has to verify first.
Does a vendor saying yes to passkeys mean users will actually enrol?
No. Protocol support is a boolean and adoption is a product. The orchestration quality axis, covering conditional UI, device-aware prompting, and recovery design, is what separates a 5 percent enrolment rate from a 40 percent one. This page is the capability reference. The adoption view is on the passkey orchestration page.

Sources

  • Auth0 docs, Passkeys for database connections and Configure Phone Messaging Providers, checked 18 September 2026
  • Amazon Cognito Developer Guide, Manage authentication methods in AWS SDKs and Email settings for user pools, checked 18 September 2026
  • Microsoft Learn, MFA in external tenants (Microsoft Entra External ID), doc dated 21 May 2026, checked 18 September 2026
  • WorkOS Docs, AuthKit Passkeys and AuthKit Hosted UI, checked 18 September 2026
  • Clerk Docs, Sign-up and sign-in options, checked 18 September 2026
  • Stytch Docs, Passkeys overview and Consumer Mobile SDK reference, checked 18 September 2026
  • Descope Documentation, Passkeys (WebAuthn) and Authentication method index, checked 18 September 2026
  • Authsignal Docs, Passkeys best practice for native mobile apps and SMS provider setup, checked 18 September 2026
  • Corbado Docs, Corbado Connect overview, checked 18 September 2026
  • Supabase Docs, Multi-Factor Authentication, checked 18 September 2026
  • Firebase Documentation, Firebase Authentication overview, checked 18 September 2026
  • NIST SP 800-63B, Digital Identity Guidelines: Authentication and Lifecycle Management, restricted authenticators
Last reviewed 2026-09-18.