<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: vdelitz</title>
    <description>The latest articles on DEV Community by vdelitz (@vdelitz).</description>
    <link>https://dev.to/vdelitz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1041276%2F3b6dadfd-e1b9-47ad-87ec-d19a9cbcafe2.jpg</url>
      <title>DEV Community: vdelitz</title>
      <link>https://dev.to/vdelitz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vdelitz"/>
    <language>en</language>
    <item>
      <title>QR Login Failure: Why QR Code Login Breaks</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Fri, 17 Jul 2026 08:31:23 +0000</pubDate>
      <link>https://dev.to/vdelitz/qr-login-failure-why-qr-code-login-breaks-577c</link>
      <guid>https://dev.to/vdelitz/qr-login-failure-why-qr-code-login-breaks-577c</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F95xv5tk1pu5hlupp2h2g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F95xv5tk1pu5hlupp2h2g.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  QR login is a cross-device flow, not one click
&lt;/h2&gt;

&lt;p&gt;QR code login looks clean in a demo. Show a code on desktop, scan it with a phone, confirm, done.&lt;/p&gt;

&lt;p&gt;In production, it is much messier. The article “QR Login Failure: Why QR Code Login Breaks” maps out why a simple-looking QR flow often fails across scan, handoff, proximity check, confirmation, or callback. That is the core problem with debugging QR code login not working: most teams only see the final outcome, not the failing step.&lt;/p&gt;

&lt;p&gt;This gets worse in passkey QR code login with WebAuthn cross-device authentication (CDA). Once the browser and operating system take over, the relying party usually sees only coarse ceremony outcomes like success, error, timeout, or server verification result. The hidden middle is where the real failure often lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not all QR login flows fail the same way
&lt;/h2&gt;

&lt;p&gt;A useful distinction from the source material is that there are really two different flows people call “QR login.”&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Flow type&lt;/th&gt;
&lt;th&gt;What the team can usually observe&lt;/th&gt;
&lt;th&gt;Main blind spots&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Custom QR login&lt;/td&gt;
&lt;td&gt;QR shown, scan, app open, confirmation, callback&lt;/td&gt;
&lt;td&gt;Wrong app routing, wrong account, abandoned confirmation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebAuthn CDA passkey QR flow&lt;/td&gt;
&lt;td&gt;Ceremony start, completion/failure, timeout, verification result&lt;/td&gt;
&lt;td&gt;QR scan success, Bluetooth proximity check passkeys, phone-side prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That distinction matters because instrumentation strategy changes completely.&lt;/p&gt;

&lt;p&gt;In a custom flow, you can often track almost every step directly. In WebAuthn CDA, you cannot honestly claim direct visibility into scan or proximity unless your own app or SDK exposes it. You have to separate observed facts from inferred phases.&lt;/p&gt;

&lt;p&gt;That sounds subtle, but it is the difference between useful authentication observability and hand-wavy dashboards.&lt;/p&gt;

&lt;h2&gt;
  
  
  The boring failures are the real failures
&lt;/h2&gt;

&lt;p&gt;QR login failure is usually not caused by some exotic cryptographic edge case. It is usually a chain of small, very human problems.&lt;/p&gt;

&lt;p&gt;Typical examples from the source:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the QR code is visible but hard to scan on a dim screen or kiosk&lt;/li&gt;
&lt;li&gt;the user scans with the default camera app when the flow expected a specific app&lt;/li&gt;
&lt;li&gt;the wrong phone, work profile, or account handles the challenge&lt;/li&gt;
&lt;li&gt;Bluetooth or network restrictions break CDA proximity checks&lt;/li&gt;
&lt;li&gt;the user confirms on mobile, but the desktop never gets the final callback&lt;/li&gt;
&lt;li&gt;the desktop just spins, so support hears “QR login not working”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why QR login conversion rate can look acceptable in a demo and brittle in production. Demos control screen quality, lighting, network conditions, and device state. Real users do not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debugging QR login issues needs a stitched funnel
&lt;/h2&gt;

&lt;p&gt;Most analytics setups are too shallow for this problem. They record “clicked sign in with QR” and maybe “login success.” Everything that matters sits in between.&lt;/p&gt;

&lt;p&gt;A better model is an authentication analytics login funnel stitched across desktop and mobile.&lt;/p&gt;

&lt;p&gt;For custom QR login, the article recommends tracking steps like:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;QR code shown&lt;/li&gt;
&lt;li&gt;QR code scanned&lt;/li&gt;
&lt;li&gt;Mobile session opened&lt;/li&gt;
&lt;li&gt;Confirmation shown&lt;/li&gt;
&lt;li&gt;Confirmation completed&lt;/li&gt;
&lt;li&gt;Desktop callback received&lt;/li&gt;
&lt;li&gt;Session established&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For WebAuthn CDA, the observable events are different:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;passkey ceremony started
challenge created
WebAuthn call completed or failed
error name
timeout
elapsed duration
server verification result
session established
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That still does not expose every phone-side step, but it gives you enough structure to infer where failures cluster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Segmentation is where root causes appear
&lt;/h2&gt;

&lt;p&gt;Once events are stitched, the next step is segmentation. This is where vague support complaints turn into patterns.&lt;/p&gt;

&lt;p&gt;You want to compare:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;custom app QR vs passkey QR vs other QR-based login methods&lt;/li&gt;
&lt;li&gt;iOS vs Android&lt;/li&gt;
&lt;li&gt;desktop browser differences&lt;/li&gt;
&lt;li&gt;app versions and mobile browser behavior&lt;/li&gt;
&lt;li&gt;abandonment vs technical failure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last split is especially important. A user walking away from a QR screen and a Bluetooth timeout both hurt conversion, but they are not the same problem and should not get the same fix.&lt;/p&gt;

&lt;p&gt;Corbado is a passkey observability and adoption platform for large B2C enterprises. The useful idea here is not the product name, though. It is the operating model: connect desktop start, browser or app events, server verification, and final session outcome into one journey.&lt;/p&gt;

&lt;p&gt;If you only measure final success, every QR login failure looks identical. If you instrument the missing middle, you can finally tell whether the issue is scan quality, app handoff, WebAuthn timeout, callback failure, or user confusion.&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://www.corbado.com/blog/qr-login-failure" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>security</category>
    </item>
    <item>
      <title>Why GA4 Can't Debug Login Failures</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Mon, 13 Jul 2026 09:49:11 +0000</pubDate>
      <link>https://dev.to/vdelitz/why-ga4-cant-debug-login-failures-4k6b</link>
      <guid>https://dev.to/vdelitz/why-ga4-cant-debug-login-failures-4k6b</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo3yk1ol9fdu9d2yj4e0f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo3yk1ol9fdu9d2yj4e0f.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The gap most teams notice too late
&lt;/h2&gt;

&lt;p&gt;GA4 login tracking is good at telling you that a login funnel conversion drop happened. It is much worse at telling you why.&lt;/p&gt;

&lt;p&gt;That sounds obvious, but it becomes a real problem once authentication stops being a simple username-and-password form. Modern login flows now include passkeys, WebAuthn prompts, social login redirects, OTP retries, native credential pickers, in-app browsers, and fallback paths. When one of those breaks, generic analytics usually shows a missing conversion, not the root cause.&lt;/p&gt;

&lt;p&gt;That is the core boundary here: product analytics measures funnel movement, while authentication observability explains authentication failures.&lt;/p&gt;

&lt;h2&gt;
  
  
  What GA4 actually does well
&lt;/h2&gt;

&lt;p&gt;To be fair, GA4 is useful for login-related reporting.&lt;/p&gt;

&lt;p&gt;It works well for questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many users reached the login page?&lt;/li&gt;
&lt;li&gt;Which login method gets clicked most?&lt;/li&gt;
&lt;li&gt;Did checkout completion change after we reordered buttons?&lt;/li&gt;
&lt;li&gt;Did sign-in friction hurt return visits or signup completion?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your question is about &lt;strong&gt;funnel shape&lt;/strong&gt;, &lt;strong&gt;business outcome correlation&lt;/strong&gt;, or &lt;strong&gt;experiment measurement&lt;/strong&gt;, GA4 can do the job.&lt;/p&gt;

&lt;p&gt;For example, you can model events like &lt;code&gt;login_started&lt;/code&gt;, &lt;code&gt;passkey_clicked&lt;/code&gt;, and &lt;code&gt;login_success&lt;/code&gt;, then compare variants across cohorts. That helps product and growth teams see whether a change improved overall conversion.&lt;/p&gt;

&lt;p&gt;But that only answers what happened at the funnel level. It does not explain the failed authentication journey underneath it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why GA4 breaks down during login debugging
&lt;/h2&gt;

&lt;p&gt;The main problem is simple: GA4 stores events, not authentication journeys.&lt;/p&gt;

&lt;p&gt;A real login attempt can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a capability check&lt;/li&gt;
&lt;li&gt;a native passkey prompt&lt;/li&gt;
&lt;li&gt;a credential-provider selection&lt;/li&gt;
&lt;li&gt;a biometric step&lt;/li&gt;
&lt;li&gt;a redirect to a social provider&lt;/li&gt;
&lt;li&gt;an OTP fallback&lt;/li&gt;
&lt;li&gt;a final session creation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If one of those steps fails, GA4 usually has no native way to understand the ceremony context. Unless a team builds separate instrumentation for method, step, environment, error, and fallback path, the failure often shows up as abandonment.&lt;/p&gt;

&lt;p&gt;That is especially painful for client-side failures. A user can hit a WebAuthn timeout, cancel a biometric prompt, lose a redirect cookie in Safari, or run into credential manager issues on Android. From a funnel dashboard, those can all look almost identical: the user started and never completed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The missing context you need for root cause analysis
&lt;/h2&gt;

&lt;p&gt;Debug login failures requires more than event counts. You need to know the exact environment and the exact step where the flow diverged.&lt;/p&gt;

&lt;p&gt;A typical auth investigation might need dimensions like these:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Login method&lt;/td&gt;
&lt;td&gt;Passkey, password, OTP, social login all fail differently&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ceremony step&lt;/td&gt;
&lt;td&gt;Prompt shown, credential selected, biometric started, redirect returned&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Environment&lt;/td&gt;
&lt;td&gt;Browser, OS, app version, in-app browser, device model&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Provider context&lt;/td&gt;
&lt;td&gt;Credential provider or social provider involved&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Error detail&lt;/td&gt;
&lt;td&gt;Timeout, cancel, blocked redirect, provider outage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recovery path&lt;/td&gt;
&lt;td&gt;Retry, fallback, abandonment, eventual success&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is also where timing matters. Incidents often live in narrow, high-cardinality slices, like one browser version inside one in-app browser or one Android credential picker regression. GA4 is not optimized for that kind of fast diagnostic slicing.&lt;/p&gt;

&lt;p&gt;The article puts it well: GA4 can help confirm a drop, but it usually cannot tell whether the root cause was a WebAuthn timeout, Safari blocking a redirect cookie, an Android credential picker regression, a social provider outage, or a user canceling a biometric prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why authentication observability is a separate layer
&lt;/h2&gt;

&lt;p&gt;Authentication observability complements GA4 instead of replacing it.&lt;/p&gt;

&lt;p&gt;Use GA4 for broad reporting: funnel trends, experiment outcomes, and downstream business impact. Use authentication observability for the auth-specific questions GA4 does not answer well: which method failed, which cohort was affected, which step broke, and whether users recovered.&lt;/p&gt;

&lt;p&gt;That matters beyond engineering. Product managers, growth teams, IAM owners, support, and incident responders all need the same underlying auth journey, just at different levels of detail.&lt;/p&gt;

&lt;p&gt;Corbado is a passkey observability and adoption platform for large B2C enterprises.&lt;/p&gt;

&lt;p&gt;The practical takeaway is straightforward: if your dashboard says login conversion dropped, GA4 is often the start of the investigation, not the answer.&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://www.corbado.com/blog/why-ga4-cannot-debug-login-failures" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Windows passkeys on managed devices: debug the client</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Tue, 07 Jul 2026 07:44:58 +0000</pubDate>
      <link>https://dev.to/vdelitz/windows-passkeys-on-managed-devices-debug-the-client-4moi</link>
      <guid>https://dev.to/vdelitz/windows-passkeys-on-managed-devices-debug-the-client-4moi</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhh6wc4i4yhpdoub0xp7e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhh6wc4i4yhpdoub0xp7e.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Windows passkey failures usually aren't one bug
&lt;/h2&gt;

&lt;p&gt;The article "Windows Passkey not working on managed Devices?" argues that enterprise passkey failures on Windows are usually multi-cause problems, not a single broken login path. On managed fleets, the same user complaint can come from missing Windows Hello enrollment, the wrong credential provider being selected, a managed policy blocking prompts, Bluetooth issues in hybrid QR cross-device passkey Windows flows, or a passkey that exists in a password manager the user cannot access on that machine.&lt;/p&gt;

&lt;p&gt;That matters because the backend often sees almost nothing useful. In many cases, Windows passkey failures happen before the server even receives a WebAuthn response. So if your telemetry only says "login failed," you're blind to the exact ceremony step where things actually broke.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why enterprise troubleshooting is different
&lt;/h2&gt;

&lt;p&gt;Consumer troubleshooting assumes one user, one device, one browser, one account. Enterprise passkey rollout analytics need a different model.&lt;/p&gt;

&lt;p&gt;A single login journey can involve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;managed Windows laptops and BYOD devices&lt;/li&gt;
&lt;li&gt;Edge or Chrome&lt;/li&gt;
&lt;li&gt;Windows Hello, hardware security keys, or synced passkeys&lt;/li&gt;
&lt;li&gt;password managers like 1Password, Dashlane, iCloud Passwords, or Google Password Manager&lt;/li&gt;
&lt;li&gt;cross-device authentication with phone handoff&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why Windows passkeys enterprise troubleshooting gets expensive after launch. Support tickets say "Windows Security passkey not working," but the real question is whether it's one user's setup problem or a fleet-wide regression tied to a specific Windows, browser, and provider combination.&lt;/p&gt;

&lt;h2&gt;
  
  
  The key debugging boundary is the ceremony, not the server
&lt;/h2&gt;

&lt;p&gt;The most practical insight in the source article is where to instrument. If you want useful Windows passkey enterprise troubleshooting, collect data at the authentication ceremony boundary, not just in IdP or backend logs.&lt;/p&gt;

&lt;p&gt;The article recommends capturing at least these dimensions:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Signal&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Exact Windows version&lt;/td&gt;
&lt;td&gt;Windows 10, Windows 11 23H2, and Windows 11 24H2 can behave differently&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Browser and version&lt;/td&gt;
&lt;td&gt;Edge and Chrome can route users differently&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Credential provider and transport&lt;/td&gt;
&lt;td&gt;Separates Windows Hello from password manager or hardware key paths&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ceremony step and result&lt;/td&gt;
&lt;td&gt;Tells you whether the prompt showed, biometrics started, or the flow timed out&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User journey outcome&lt;/td&gt;
&lt;td&gt;Shows fallback to password, retry, abandonment, or support contact&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is also where errors like WebAuthn NotAllowedError timeout Windows become meaningful. A NotAllowedError after a timeout is not the same as a user cancel, and backend logs alone usually cannot tell you which one happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  The failure modes are often policy-shaped
&lt;/h2&gt;

&lt;p&gt;Managed device policy passkey issues are easy to underestimate because they create partial breakage. A browser policy, security product, or device-management change can affect passkey prompts, Bluetooth access, USB security key use, or extension behavior for only a subset of the fleet.&lt;/p&gt;

&lt;p&gt;That's why a passkey rollout can look healthy overall while a specific cohort is failing.&lt;/p&gt;

&lt;p&gt;A useful workflow from the article is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start with the affected user's last attempts.&lt;/li&gt;
&lt;li&gt;Check device, browser, provider, transport, and ceremony step.&lt;/li&gt;
&lt;li&gt;Expand to the cohort with the same combination.&lt;/li&gt;
&lt;li&gt;Compare current success to that cohort's earlier baseline.&lt;/li&gt;
&lt;li&gt;Decide whether this is a support issue, fallback issue, or rollout regression.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That last step is important. If Windows Hello passkey failure is really a Chrome plus hybrid transport regression on Windows 11 24H2, sending users another password reset email just wastes time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Observability turns vague complaints into actionable cohorts
&lt;/h2&gt;

&lt;p&gt;The source article's core argument is simple: if users report "Windows passkey not working on managed devices," your team needs client-side authentication observability for passkeys to understand what happened before the backend ever saw the login.&lt;/p&gt;

&lt;p&gt;Corbado is a passkey observability and adoption platform for large B2C enterprises. In the article, Corbado Observe is presented as a way to capture client-side ceremony events, device and browser context, failure outcomes, and fallback behavior that standard logs miss.&lt;/p&gt;

&lt;p&gt;For technical teams, the real value is not just per-user debugging. It's the ability to answer rollout questions like: did a Windows/browser/policy cohort start failing after a rollout, or is this just one user's setup issue?&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://www.corbado.com/blog/windows-passkey-not-working-enterprise" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Android 17 Passkeys Get Real Portability</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Wed, 01 Jul 2026 07:57:31 +0000</pubDate>
      <link>https://dev.to/vdelitz/android-17-passkeys-get-real-portability-p5g</link>
      <guid>https://dev.to/vdelitz/android-17-passkeys-get-real-portability-p5g</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fskiqlz8k1iihjcaqipyg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fskiqlz8k1iihjcaqipyg.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Android 17 continues a quiet but important shift in passkeys: making them less fragile in real-world use. The release starts rolling out to Pixel devices in June 2026, with broader availability later, and it focuses on three things that developers actually care about: credential portability, theft resistance, and stronger high-security defaults.&lt;/p&gt;

&lt;p&gt;The big story is not a new login UI. It is that Android 17 makes passkeys easier to move, harder to steal, and more credible as a long-term authentication baseline. That matters because passkeys have always had a perception problem: users like the convenience, but many still worry that creating one means getting trapped inside a single vendor ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Credential Exchange fixes the lock-in problem
&lt;/h2&gt;

&lt;p&gt;Android 17 adds support for the FIDO Alliance Credential Exchange standard through Google Play services 26.21. Concretely, that means users can move passwords and passkeys between Google Password Manager and third-party managers like 1Password, Bitwarden, and Dashlane.&lt;/p&gt;

&lt;p&gt;The practical improvement is simple. Instead of exporting a CSV or JSON file and hoping sensitive data does not get left behind somewhere on disk, the transfer happens directly app-to-app and is end-to-end encrypted.&lt;/p&gt;

&lt;p&gt;At a high level, the flow works like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The user starts from either import in the destination manager or export in Google Password Manager&lt;/li&gt;
&lt;li&gt;The source and destination establish a secure channel&lt;/li&gt;
&lt;li&gt;The user authenticates with biometrics&lt;/li&gt;
&lt;li&gt;Credentials move directly without being written to an intermediate file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is a meaningful upgrade for passkey portability on Android. It removes a major reason users hesitate to adopt passkeys in the first place.&lt;/p&gt;

&lt;p&gt;There is also a broader ecosystem implication here. Apple introduced similar secure import/export in iOS 26, and Android 17 now mirrors that direction with open FIDO standards. A passkey starts looking less like a proprietary artifact and more like a portable user-controlled credential.&lt;/p&gt;

&lt;h2&gt;
  
  
  What developers need to implement
&lt;/h2&gt;

&lt;p&gt;For credential provider developers, Android 17 turns migration into a platform capability instead of a custom workaround. The relevant integration point is the &lt;code&gt;ProviderEventsManager&lt;/code&gt; family in &lt;code&gt;androidx.credentials&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The split is straightforward:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;API&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Importing provider&lt;/td&gt;
&lt;td&gt;&lt;code&gt;importCredentials&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Launches provider selection and starts the transfer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exporting provider&lt;/td&gt;
&lt;td&gt;&lt;code&gt;registerExport&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Registers the app as a credential source&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A provider that wants to export also needs to declare a transfer activity in its manifest so the framework can route requests correctly. Under the hood, Android passes data through a content URI and includes security context such as &lt;code&gt;CallingAppInfo&lt;/code&gt;, so the exporter can verify who is requesting the transfer. A &lt;code&gt;credId&lt;/code&gt; is also used to validate the selected export entry.&lt;/p&gt;

&lt;p&gt;The technical detail that matters most: the secure channel is negotiated per transfer using Diffie-Hellman key exchange, and the exported payload is formatted with Credential Exchange Format (CXF). This is not just a prettier export flow. It is a safer model for moving high-value credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Android 17 also hardens the device itself
&lt;/h2&gt;

&lt;p&gt;Passkeys are phishing-resistant by design, but their real security still depends on the device storing them. Android 17 addresses that with stronger theft protection.&lt;/p&gt;

&lt;p&gt;Two changes stand out:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Mark as lost in Find Hub now lets the owner lock the device with biometrics, which means even someone who knows the passcode cannot access the phone’s information or disable tracking.&lt;/li&gt;
&lt;li&gt;PIN brute-force throttling gets tighter, with fewer allowed guesses and longer delays between failed attempts.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That matters for a very specific threat model: a thief who has both the phone and an observed PIN. Android 17 narrows that gap and gives the credential store stronger protection in exactly the scenario people worry about most.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advanced Protection keeps passkeys at the top tier
&lt;/h2&gt;

&lt;p&gt;Android 17 also strengthens Advanced Protection mode, Google’s highest-security device profile. For authentication, the signal is consistent: FIDO2 credentials, whether passkeys or hardware security keys, remain the enrollment baseline, while passwords are not considered sufficient for this tier.&lt;/p&gt;

&lt;p&gt;That is an important message for enterprise teams. Android is no longer treating passkeys as just a convenience feature. It is treating them as the security baseline for high-risk users and stronger account protection.&lt;/p&gt;

&lt;p&gt;For adoption, the opportunity is obvious, but execution still is not automatic. Android fleets remain fragmented across OS versions, OEM variants, and Play services rollout timing. Corbado is a passkey observability and adoption platform for large B2C enterprises. One useful benchmark from the source material: VicRoads reports 80% mobile passkey activation across 5M+ users.&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://www.corbado.com/blog/android-17-passkeys" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Passkeys vs SMS OTP for Real-World Logins</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Tue, 23 Jun 2026 15:48:34 +0000</pubDate>
      <link>https://dev.to/vdelitz/passkeys-vs-sms-otp-for-real-world-logins-1i81</link>
      <guid>https://dev.to/vdelitz/passkeys-vs-sms-otp-for-real-world-logins-1i81</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frgbvmejxlqn2sugap7m9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frgbvmejxlqn2sugap7m9.png" alt="Why this comparison matters" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SMS OTP is still the default second factor for a lot of banks, retailers, and marketplaces because every phone can receive a text. But that reach hides three separate questions: does it convert, what does it cost at scale, and how much security are you actually getting?&lt;/p&gt;

&lt;p&gt;That is the useful frame for passkeys vs SMS OTP. Not hype. Not “what’s newer.” Just whether one method gets more users through login, costs less per successful authentication, and holds up better against phishing.&lt;/p&gt;

&lt;p&gt;For most returning users, passkeys have a structural advantage on all three.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conversion is really about ceremony length
&lt;/h2&gt;

&lt;p&gt;The main passkeys conversion rate advantage is simple: there is no code ceremony.&lt;/p&gt;

&lt;p&gt;With WebAuthn passkeys, the device prompts the user, they confirm with biometrics or device PIN, and the session is established. With SMS OTP, the user has to wait for the message, open it, switch context, read the code, type it, and hope delivery worked in the first place.&lt;/p&gt;

&lt;p&gt;Every step in that wait-read-switch-type flow is a place to lose users. And many of those failures are silent in standard analytics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the code arrives late&lt;/li&gt;
&lt;li&gt;the code lands in the wrong app context&lt;/li&gt;
&lt;li&gt;the user mistypes it&lt;/li&gt;
&lt;li&gt;retries inflate friction before the backend sees a clean completion or failure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why “SMS reaches everyone” is not the same as “SMS converts well.” Reach measures coverage. Conversion measures completed sessions.&lt;/p&gt;

&lt;p&gt;If you are comparing passkeys security vs SMS or debating a passkey adoption strategy, this distinction matters more than most teams expect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost is not per message, it is per successful login
&lt;/h2&gt;

&lt;p&gt;SMS OTP authentication cost is often underestimated because teams look at carrier pricing instead of completed outcomes.&lt;/p&gt;

&lt;p&gt;The article’s point here is practical: SMS has a per-message fee on every send, including retries. Those fees range from fractions of a cent in the US to well over USD 0.30 in some markets. Then add support load, fraud exposure, and the infrastructure around delivery and verification.&lt;/p&gt;

&lt;p&gt;Passkey logins do not carry a per-authentication messaging fee. So the more traffic you have, and the more countries you operate in, the more the cost gap widens.&lt;/p&gt;

&lt;p&gt;A fair comparison looks like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Axis&lt;/th&gt;
&lt;th&gt;SMS OTP&lt;/th&gt;
&lt;th&gt;Passkeys&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;User steps&lt;/td&gt;
&lt;td&gt;Wait, read, switch, type&lt;/td&gt;
&lt;td&gt;Confirm on device&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marginal auth cost&lt;/td&gt;
&lt;td&gt;Per-message fee, plus retries&lt;/td&gt;
&lt;td&gt;No messaging fee&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Failure pattern&lt;/td&gt;
&lt;td&gt;Delivery and transcription issues&lt;/td&gt;
&lt;td&gt;Device / platform support issues&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security model&lt;/td&gt;
&lt;td&gt;Human-readable code&lt;/td&gt;
&lt;td&gt;Domain-bound cryptographic credential&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This is also why login funnel analytics matter. If SMS needs retries to produce one completed login, the real cost is not the headline message price.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security is where the gap is clearest
&lt;/h2&gt;

&lt;p&gt;Phishing-resistant authentication is the strongest technical argument for passkeys.&lt;/p&gt;

&lt;p&gt;A passkey is bound to the exact domain. There is no shared secret to steal, copy, or replay on a phishing site. SMS OTP is the opposite: a human-readable code that can be phished, intercepted, or abused via SIM-swap attacks and malware.&lt;/p&gt;

&lt;p&gt;So on passkeys security vs SMS, the difference is not subtle. SMS may still be useful operationally, but it remains a weak factor against modern phishing.&lt;/p&gt;

&lt;p&gt;That matters even more in regulated environments. The article points out that markets like the UAE are already phasing out SMS OTP for banking.&lt;/p&gt;

&lt;h2&gt;
  
  
  The right rollout is not “replace SMS overnight”
&lt;/h2&gt;

&lt;p&gt;The common mistake is the migration trap: a team sees the conversion, cost, and security upside of passkeys and decides to rip out SMS immediately. That usually backfires because some users still depend on SMS for first contact, older devices, or non-ideal app/browser environments.&lt;/p&gt;

&lt;p&gt;The better SMS OTP fallback strategy is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;make passkeys the primary option&lt;/li&gt;
&lt;li&gt;keep SMS OTP as an explicit fallback&lt;/li&gt;
&lt;li&gt;segment by OS, browser, and device class&lt;/li&gt;
&lt;li&gt;track method switches and cost per successful login&lt;/li&gt;
&lt;li&gt;shrink SMS only when the remaining users have a clean alternative&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where authentication observability becomes essential. Most stacks only record “logged in” or “did not log in.” That is not enough. You need per-method funnel visibility from method chosen to &lt;code&gt;session_established&lt;/code&gt;, plus segmentation by environment.&lt;/p&gt;

&lt;p&gt;Without that, you are guessing. With it, you can make decisions like: passkeys outperform SMS on iPhone Safari, but SMS still covers a legacy Android segment we cannot strand yet.&lt;/p&gt;

&lt;p&gt;Corbado is a passkey observability and adoption platform for large B2C enterprises.&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://www.corbado.com/blog/passkeys-vs-sms-otp" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>passkey</category>
      <category>webdev</category>
      <category>security</category>
    </item>
    <item>
      <title>Choosing a CIAM in 2026: Passkey Adoption, MCP Support and TCO at 500k MAU</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Thu, 11 Jun 2026 08:02:46 +0000</pubDate>
      <link>https://dev.to/vdelitz/choosing-a-ciam-in-2026-passkey-adoption-mcp-support-and-tco-at-500k-mau-13eb</link>
      <guid>https://dev.to/vdelitz/choosing-a-ciam-in-2026-passkey-adoption-mcp-support-and-tco-at-500k-mau-13eb</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39l8h4ihk5v450txreke.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39l8h4ihk5v450txreke.png" alt="Choosing CIAM in 2026" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why CIAM selection changed in 2026
&lt;/h2&gt;

&lt;p&gt;The 2026 CIAM market looks different from even a year ago. The shift is not just about adding passkeys or checking an OAuth box anymore. For large-scale B2C deployments, especially around &lt;strong&gt;500k monthly active users&lt;/strong&gt;, the real decision is about three things at once: passwordless execution, AI agent identity, and total cost of ownership.&lt;/p&gt;

&lt;p&gt;A recent market evaluation compared CIAM platforms including Auth0, Clerk, Descope, Ory, Ping Identity, IBM Verify, Stytch, Zitadel, Amazon Cognito, FusionAuth, Firebase, and Supabase at that scale. The headline is simple: most platforms now expose WebAuthn or passkey APIs, but that alone does not produce strong outcomes.&lt;/p&gt;

&lt;p&gt;That gap matters because web passkey readiness is already around &lt;strong&gt;89% of completed logins&lt;/strong&gt; in 2026. Readiness is no longer the bottleneck. Adoption is.&lt;/p&gt;

&lt;h2&gt;
  
  
  The passkey problem is not API availability
&lt;/h2&gt;

&lt;p&gt;This is the part many teams still underestimate. Enabling passkeys in a CIAM dashboard is not the same thing as driving passkey usage.&lt;/p&gt;

&lt;p&gt;The comparison shows that generic CIAM implementations often stall at &lt;strong&gt;5-10% passkey adoption&lt;/strong&gt;. At 500k MAU, that still leaves roughly 450k users relying on passwords or SMS OTP. So the question for the best CIAM platform for B2C is no longer “does it support WebAuthn?” but “can it actually move users onto passkeys?”&lt;/p&gt;

&lt;p&gt;The market data breaks passkey rollouts into distinct outcomes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;settings-only availability: roughly 5% passkey login rate&lt;/li&gt;
&lt;li&gt;simple post-login nudge: about 23% in better cases&lt;/li&gt;
&lt;li&gt;passkey-first return flow with automatic creation and recovery: &lt;strong&gt;60%+&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important technical takeaway is that the CIAM backend is rarely the thing causing that spread. Prompt timing, device classification, recovery design, and return-user flows are what move passkeys WebAuthn adoption.&lt;/p&gt;

&lt;h2&gt;
  
  
  Vendor tradeoffs at 500k MAU
&lt;/h2&gt;

&lt;p&gt;If you are comparing CIAM solutions 2026, the tradeoffs are pretty clear once you separate base platform features from orchestration quality.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Vendor&lt;/th&gt;
&lt;th&gt;Passkey position&lt;/th&gt;
&lt;th&gt;Estimated pricing at 500k MAU&lt;/th&gt;
&lt;th&gt;Main tradeoff&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Auth0&lt;/td&gt;
&lt;td&gt;Universal Login + API/SDK&lt;/td&gt;
&lt;td&gt;$15k-30k/mo&lt;/td&gt;
&lt;td&gt;Mature and extensible, but expensive and no adoption tooling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clerk&lt;/td&gt;
&lt;td&gt;Toggle in pre-built components&lt;/td&gt;
&lt;td&gt;~$9k/mo&lt;/td&gt;
&lt;td&gt;Excellent DX, but React-centric&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Descope&lt;/td&gt;
&lt;td&gt;Visual passwordless workflows&lt;/td&gt;
&lt;td&gt;Custom&lt;/td&gt;
&lt;td&gt;Strong orchestration and A/B testing, but less flexible with own frontend&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amazon Cognito&lt;/td&gt;
&lt;td&gt;Passkeys in Managed Login v2&lt;/td&gt;
&lt;td&gt;~$7.3k-10k/mo&lt;/td&gt;
&lt;td&gt;Good AWS scale, but hidden engineering overhead&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stytch&lt;/td&gt;
&lt;td&gt;WebAuthn API/SDK&lt;/td&gt;
&lt;td&gt;~$4.9k/mo&lt;/td&gt;
&lt;td&gt;Strong fraud tooling, but more implementation work&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firebase / Supabase&lt;/td&gt;
&lt;td&gt;No native passkeys&lt;/td&gt;
&lt;td&gt;~$2.1k/mo / $599/mo&lt;/td&gt;
&lt;td&gt;Cheap, but not suitable for enterprise passwordless CIAM&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A useful example is &lt;strong&gt;Amazon Cognito passkeys Managed Login v2&lt;/strong&gt;. Native support exists, but only on the Essentials tier and above. That makes the base price look reasonable, yet teams still absorb substantial engineering cost if they need custom UI or better passkey adoption flows.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI agent identity is now part of CIAM
&lt;/h2&gt;

&lt;p&gt;The second big change is that CIAM is no longer only about humans. AI agents are now participating in workflows, calling APIs, and acting through MCP-based patterns.&lt;/p&gt;

&lt;p&gt;That is why &lt;strong&gt;AI agent identity MCP&lt;/strong&gt; and &lt;strong&gt;Model Context Protocol OAuth 2.1&lt;/strong&gt; support are becoming real buying criteria. The evaluation notes that &lt;strong&gt;95% of organizations cite identity concerns around AI agents&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For technical buyers, that means looking for support around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OAuth 2.1&lt;/li&gt;
&lt;li&gt;PKCE&lt;/li&gt;
&lt;li&gt;tool-level scopes&lt;/li&gt;
&lt;li&gt;machine and agent identity controls&lt;/li&gt;
&lt;li&gt;MCP-compatible authorization models&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Descope, Clerk, Stytch, Ping, and IBM are all discussed through that lens, but not equally mature. If your roadmap includes agent access to tools or services, this is no longer optional future-proofing.&lt;/p&gt;

&lt;h2&gt;
  
  
  TCO is bigger than license cost
&lt;/h2&gt;

&lt;p&gt;A lot of CIAM evaluations still stop at monthly pricing. That is a mistake.&lt;/p&gt;

&lt;p&gt;The comparison estimates that building passkeys natively on top of any CIAM platform typically requires &lt;strong&gt;25-30 FTE-months&lt;/strong&gt; across product, engineering, and QA, plus about &lt;strong&gt;1.5 FTE per year&lt;/strong&gt; for maintenance. That changes how you should think about CIAM total cost of ownership 500k MAU.&lt;/p&gt;

&lt;p&gt;Even platforms with lower sticker prices can become expensive if they require:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;custom passkey UX&lt;/li&gt;
&lt;li&gt;cross-platform retesting&lt;/li&gt;
&lt;li&gt;recovery flow design&lt;/li&gt;
&lt;li&gt;frontend maintenance&lt;/li&gt;
&lt;li&gt;support and analytics work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is also why the Auth0 vs Clerk vs Descope passkeys debate is not just about feature checklists. Auth0 is extensible but expensive. Clerk is fast for modern frontend teams but narrower in ecosystem fit. Descope is strong on orchestration, especially for passwordless journeys, but comes with different frontend tradeoffs.&lt;/p&gt;

&lt;p&gt;Corbado is a passkey observability and adoption platform for large B2C enterprises.&lt;/p&gt;

&lt;p&gt;The interesting conclusion from the market review is that many enterprises should not replace their CIAM at all. They should optimize what sits on top of it: passkey orchestration and analytics.&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://www.corbado.com/blog/best-ciam-solutions" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Authentication Process Mining in CIAM</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Mon, 01 Jun 2026 13:28:08 +0000</pubDate>
      <link>https://dev.to/vdelitz/authentication-process-mining-in-ciam-2nhl</link>
      <guid>https://dev.to/vdelitz/authentication-process-mining-in-ciam-2nhl</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7on9oxkf4uphd78z1lmw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7on9oxkf4uphd78z1lmw.png" alt="Authentication Process Mining in CIAM" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why passkeys exposed a CIAM blind spot
&lt;/h2&gt;

&lt;p&gt;Authentication process mining is the idea of applying process-mining techniques to login journeys, using per-session event logs to reconstruct what users actually did instead of what the auth flow was supposed to do.&lt;/p&gt;

&lt;p&gt;That matters now because passkeys moved critical parts of authentication to the client. Traditional IDP logs can tell you attempt, success, and failure. They usually cannot tell you whether &lt;strong&gt;Conditional UI&lt;/strong&gt; fired, whether the browser showed a biometric prompt, which credential manager was selected, or whether the user silently abandoned before any assertion hit the backend.&lt;/p&gt;

&lt;p&gt;This is why many teams think their rollout is healthy when it is not. A &lt;strong&gt;92% aggregate success rate&lt;/strong&gt; can still hide a &lt;strong&gt;40% abandonment rate on the passkey path alone&lt;/strong&gt;. Averaged metrics flatten the journey. Process mining rebuilds it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authentication observability is the prerequisite
&lt;/h2&gt;

&lt;p&gt;A lot of teams want passkey analytics, but they still lack the event model required to make it real. Authentication process mining only works after you have client-side observability in place.&lt;/p&gt;

&lt;p&gt;At minimum, the event model needs to capture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;initiation type: text-field, one-tap, or Conditional UI&lt;/li&gt;
&lt;li&gt;client-side ceremony events: page load, prompt display, biometric interaction, assertion return&lt;/li&gt;
&lt;li&gt;richer outcomes than success/failure: explicit abort, implicit abort, no-start, not-loaded, suppressed flows&lt;/li&gt;
&lt;li&gt;environment data: OS, browser, device brand, app, authenticator, transport&lt;/li&gt;
&lt;li&gt;credential inventory context: Apple, Google Password Manager, iCloud Keychain, Windows Hello, security keys, and others&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without that, you do not have process-mining event logs. You have outcome counters.&lt;/p&gt;

&lt;p&gt;The practical shift is important: authentication observability asks “what happened?” Authentication process mining asks “which path did this session take, where did it diverge, and what should we change next?”&lt;/p&gt;

&lt;h2&gt;
  
  
  The designed login journey is rarely the lived one
&lt;/h2&gt;

&lt;p&gt;The most useful insight in the article is not theoretical. In observed deployments, only about &lt;strong&gt;30% of eligible users&lt;/strong&gt; follow the designed passkey happy path.&lt;/p&gt;

&lt;p&gt;That means the majority of sessions drift somewhere else: password fallback, social login, magic links, dismissals, retries, or silent exits. Once you reconstruct the per-session graph, you can rank those variants instead of guessing.&lt;/p&gt;

&lt;p&gt;A simple comparison looks like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;View&lt;/th&gt;
&lt;th&gt;What it tells you&lt;/th&gt;
&lt;th&gt;What it misses&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;IDP outcome logs&lt;/td&gt;
&lt;td&gt;success/failure by method&lt;/td&gt;
&lt;td&gt;pre-assertion friction, abandonment cause, UI behavior&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Passkey analytics dashboard&lt;/td&gt;
&lt;td&gt;adoption and conversion trends&lt;/td&gt;
&lt;td&gt;exact deviation paths per session&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authentication process mining&lt;/td&gt;
&lt;td&gt;lived journey variants and deviation frequency&lt;/td&gt;
&lt;td&gt;requires front-end instrumentation first&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Another useful pattern: the &lt;strong&gt;top five deviation variants&lt;/strong&gt; typically account for &lt;strong&gt;85% of all deviations&lt;/strong&gt;. That is why fixing two broken variants often moves passkey adoption more than another A/B test on the happy path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this changes step-up authentication
&lt;/h2&gt;

&lt;p&gt;This gets more interesting when you connect login journey analytics to risk.&lt;/p&gt;

&lt;p&gt;A lot of step-up authentication still works like a blunt threshold rule: if transaction value is high, trigger OTP. The article frames the tradeoff clearly: teams often add friction to &lt;strong&gt;95% of legitimate traffic&lt;/strong&gt; to catch the &lt;strong&gt;5%&lt;/strong&gt; that looks suspicious.&lt;/p&gt;

&lt;p&gt;With authentication process mining, the decision can become session-specific instead of rule-only. Signals can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;deviation from the user’s normal path&lt;/li&gt;
&lt;li&gt;cohort baseline success rate&lt;/li&gt;
&lt;li&gt;time-of-day anomalies&lt;/li&gt;
&lt;li&gt;device reputation&lt;/li&gt;
&lt;li&gt;IP reputation&lt;/li&gt;
&lt;li&gt;credential manager identity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the bridge from CIAM observability to &lt;strong&gt;step-up authentication risk scoring&lt;/strong&gt;. You stop treating every high-value action the same and start using the session’s actual path as a risk input.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why IDPs are unlikely to solve this natively
&lt;/h2&gt;

&lt;p&gt;The article makes a useful distinction: IDPs own the control plane, while authentication process mining is a data-plane problem.&lt;/p&gt;

&lt;p&gt;That sounds subtle, but it has real architectural consequences. Orchestration products in Okta, Ping, ForgeRock, and Auth0 are good at defining policy and journey logic. They are not built to normalize high-cardinality front-end telemetry across browsers, operating systems, authenticators, and credential managers.&lt;/p&gt;

&lt;p&gt;That is why terms like &lt;strong&gt;cohort drift detection&lt;/strong&gt;, &lt;strong&gt;credential manager selection&lt;/strong&gt;, and variant analysis are becoming first-class concerns for CIAM teams. Browser updates and OS rollouts change behavior silently. Aggregate success rate often catches that too late.&lt;/p&gt;

&lt;p&gt;The near-term takeaway is simple: if you care about passkey rollout KPIs, start by measuring happy-path share and the top deviation variants on the passkey path. That is usually where the real leverage is.&lt;/p&gt;

&lt;p&gt;Read the full breakdown](&lt;a href="https://www.corbado.com/blog/authentication-process-mining" rel="noopener noreferrer"&gt;https://www.corbado.com/blog/authentication-process-mining&lt;/a&gt;).&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why Passwordless B2C Rollouts Stall at 5% (and How to Reach 60%)</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Thu, 21 May 2026 11:09:04 +0000</pubDate>
      <link>https://dev.to/vdelitz/passwordless-b2c-at-scale-in-2026-5h3a</link>
      <guid>https://dev.to/vdelitz/passwordless-b2c-at-scale-in-2026-5h3a</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg2yaafo0q1vkvfl0m6fn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg2yaafo0q1vkvfl0m6fn.png" alt="Passwordless B2C at Scale in 2026" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Passwordless for B2C at scale sounds straightforward in 2026 because every major CIAM now exposes WebAuthn APIs and markets passkeys as a standard feature. But the guide I’m referencing here looked specifically at 500k+ MAU deployments and makes a less comfortable point: enabling passkeys is not the same as driving passkey adoption.&lt;/p&gt;

&lt;p&gt;That gap shows up fast in production. Teams launch passkeys, but daily logins still run through passwords or SMS OTP. According to the guide, CIAM-native passwordless rollouts usually stall at a &lt;strong&gt;5–10% passkey login rate&lt;/strong&gt;. The structural reason is simple: the CIAM can store credentials and run policy, but it usually does not control the prompt logic, device segmentation, recovery design, or client-side telemetry needed to move users into passkey-first behavior.&lt;/p&gt;

&lt;p&gt;This is the passkey adoption fallacy in practice. “Our platform supports passkeys” is a feature statement. “We reached 60%+ passkey login rate” is an orchestration outcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  The passkey adoption ladder matters more than the vendor
&lt;/h2&gt;

&lt;p&gt;One of the most useful ideas in the guide is the &lt;strong&gt;passkey adoption ladder&lt;/strong&gt;. It reframes rollout maturity as a journey design problem, not a platform selection problem.&lt;/p&gt;

&lt;p&gt;Here’s the progression described for 500k MAU B2C environments:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rollout shape&lt;/th&gt;
&lt;th&gt;Enrollment&lt;/th&gt;
&lt;th&gt;Usage&lt;/th&gt;
&lt;th&gt;Passkey login rate&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Settings-only availability&lt;/td&gt;
&lt;td&gt;~4%&lt;/td&gt;
&lt;td&gt;~5%&lt;/td&gt;
&lt;td&gt;&amp;lt;1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Simple post-login nudge&lt;/td&gt;
&lt;td&gt;~25%&lt;/td&gt;
&lt;td&gt;~20%&lt;/td&gt;
&lt;td&gt;~4–5%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Optimized enrollment&lt;/td&gt;
&lt;td&gt;~65%&lt;/td&gt;
&lt;td&gt;~40%&lt;/td&gt;
&lt;td&gt;~23%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Passkey-first return flow&lt;/td&gt;
&lt;td&gt;~80%&lt;/td&gt;
&lt;td&gt;~95%&lt;/td&gt;
&lt;td&gt;&amp;gt;60%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;What changes across these stages is not the underlying Auth0, Cognito, Ping, or Clerk tenant. What changes is the login-entry experience sitting on top: device-aware prompting, conditional create passkeys, one-tap return flows, and identifier-first recovery.&lt;/p&gt;

&lt;p&gt;That’s also why large enterprises often need a &lt;strong&gt;WebAuthn orchestration layer&lt;/strong&gt;. Without it, the rollout gets trapped at baseline because the native UI is too flat for the real device landscape.&lt;/p&gt;

&lt;h2&gt;
  
  
  Device fragmentation is the real implementation constraint
&lt;/h2&gt;

&lt;p&gt;The guide is strongest where it stops talking about “passkeys” as one feature and starts talking about ecosystems. First-try web passkey enrollment is not uniform. The benchmark cited in the piece shows &lt;strong&gt;49–83% on iOS&lt;/strong&gt; and just &lt;strong&gt;25–39% on Windows&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That spread has direct product implications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;iOS is generally the best environment for automatic and low-friction enrollment.&lt;/li&gt;
&lt;li&gt;Android is workable but fragmented by browser and credential provider behavior.&lt;/li&gt;
&lt;li&gt;macOS is viable in many cases, but not as predictable as iOS.&lt;/li&gt;
&lt;li&gt;Windows needs more careful fallback and often cross-device handling.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where conditional create passkeys and identifier-first recovery become operationally important. If you prompt the wrong user on the wrong stack, you create dead-end ceremonies and your backend logs won’t even tell you why.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authentication observability is the missing layer
&lt;/h2&gt;

&lt;p&gt;A lot of teams assume IDP logs are enough to measure passwordless authentication CIAM success. The guide argues the opposite. The most expensive failures often happen before the backend sees anything meaningful.&lt;/p&gt;

&lt;p&gt;That’s the “pre-identifier blindness” problem: users are still anonymous when browser overlays fail, autofill gets blocked, or a passkey prompt is confusing enough that they abandon the flow. Standard CIAM logs, APM traces, and SIEM data are not designed to capture that client-side ceremony.&lt;/p&gt;

&lt;p&gt;The observability section gives a concrete example. Server-side passkey success can look nearly perfect, while user-facing completion is lower, and first-suggestion interaction is where the biggest drop-off happens. If you only inspect backend metrics, your passkey rollout KPIs look healthier than the actual user journey.&lt;/p&gt;

&lt;p&gt;For technical teams, that changes rollout order. Instrument first, then optimize. Corbado is a passkey observability and adoption platform for large B2C enterprises.&lt;/p&gt;

&lt;h2&gt;
  
  
  Buy vs. build starts with TCO, not licensing
&lt;/h2&gt;

&lt;p&gt;The guide’s TCO point is blunt and useful: licensing is not the main cost driver. Building passwordless natively into a CIAM stack at 500k MAU is estimated at &lt;strong&gt;25–30 FTE-months&lt;/strong&gt;, plus roughly &lt;strong&gt;1.5 FTE per year&lt;/strong&gt; for ongoing maintenance.&lt;/p&gt;

&lt;p&gt;That effort covers more than API integration. It includes frontend control, device classification, recovery logic, testing across OS/browser changes, and support for fallback paths that do not collapse back to passwords.&lt;/p&gt;

&lt;p&gt;The practical takeaway is that passwordless at scale is mostly an orchestration and observability problem. If your rollout is stuck at baseline, the highest-ROI move is usually to measure where users drop, segment by device stack, and fix the flow on top of your existing CIAM rather than replace it.&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://www.corbado.com/blog/passwordless-b2c-at-scale" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>security</category>
      <category>ux</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The Digital Identity Gap Needs Better Telemetry</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Fri, 15 May 2026 07:58:01 +0000</pubDate>
      <link>https://dev.to/vdelitz/the-digital-identity-gap-needs-better-telemetry-3pn7</link>
      <guid>https://dev.to/vdelitz/the-digital-identity-gap-needs-better-telemetry-3pn7</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frix4tq4k6vexqqec74fe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frix4tq4k6vexqqec74fe.png" alt="digital identity gap" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The hidden denominator problem
&lt;/h2&gt;

&lt;p&gt;Digitization is a board-level KPI in banking, healthcare, insurance, and other regulated sectors, but most dashboards still measure only the people who already made it into digital channels. That creates a blind spot: the &lt;strong&gt;digital identity gap&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In the source article, that gap means customers who exist on file but never activated or used an online login. The scale is not small. FDIC data says about &lt;strong&gt;one third of banked households did not use online banking in 2023&lt;/strong&gt;. In healthcare, HINTS/JMIR 2025 reports 38.7% of US adults did not access a patient portal in the last 12 months.&lt;/p&gt;

&lt;p&gt;This matters because a nice-looking adoption chart can still hide a 10–40% segment that never signed up, never came back, or keeps failing before the backend sees anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why backend login metrics miss the real problem
&lt;/h2&gt;

&lt;p&gt;The most uncomfortable point in the article is simple: &lt;strong&gt;over 80% of sign-up and login failures happen client-side and never reach the backend IdP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That means your server logs can report a healthy success rate while users are dropping off because of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing email verification&lt;/li&gt;
&lt;li&gt;SMS OTP delivery issues&lt;/li&gt;
&lt;li&gt;browser or OS-specific WebAuthn problems&lt;/li&gt;
&lt;li&gt;timed-out prompts&lt;/li&gt;
&lt;li&gt;blocked popups&lt;/li&gt;
&lt;li&gt;password managers fighting the form&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For identity teams, this is the difference between seeing request outcomes and seeing the actual user journey. If your telemetry starts at the API boundary, you are blind to most of the funnel.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not every failure is the same failure
&lt;/h2&gt;

&lt;p&gt;One of the better distinctions in the article is that teams often collapse three different problems into one “adoption” metric:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem type&lt;/th&gt;
&lt;th&gt;What it looks like&lt;/th&gt;
&lt;th&gt;What usually fixes it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Conversion problem&lt;/td&gt;
&lt;td&gt;User logs in with SMS OTP but never upgrades to passkey&lt;/td&gt;
&lt;td&gt;Better upgrade prompts, timing, messaging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funnel problem&lt;/td&gt;
&lt;td&gt;User starts sign-up and drops at step three&lt;/td&gt;
&lt;td&gt;Better onboarding UX, recovery, delivery reliability&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Identity problem&lt;/td&gt;
&lt;td&gt;Customer has no online profile at all&lt;/td&gt;
&lt;td&gt;Assisted enrollment, supervised onboarding&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If those are mixed together, roadmap decisions get distorted. A passkey adoption campaign will not help the customer who never completed sign-up. A better signup form will not help the user who refuses biometric binding and needs a hardware key or PIN-unlocked device credential.&lt;/p&gt;

&lt;h2&gt;
  
  
  The metrics that actually expose the gap
&lt;/h2&gt;

&lt;p&gt;The article argues for authentication telemetry as a client-plus-server event layer that captures every sign-up and login step, including failures that never hit the backend. That is what makes the gap measurable.&lt;/p&gt;

&lt;p&gt;A practical starter set of metrics includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sign-up completion rate by device and browser&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Login success rate (LSR)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Authentication error rate (AER) by reason code&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Authentication drop-off rate&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reach rate by cohort&lt;/strong&gt;, measured against the full customer base&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time-to-first-authenticated-action&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key idea is segmentation. An overall sign-up completion rate may look fine, while one browser version or one branch-acquired cohort is failing badly. The article even notes that once enterprises instrument client-side events, reported success rates often turn out to overstate reality by &lt;strong&gt;10–25 percentage points&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this is becoming a product-reach issue
&lt;/h2&gt;

&lt;p&gt;This is not only about support costs or password resets. The article connects the digital identity gap to &lt;strong&gt;agentic AI digital identity and authentication&lt;/strong&gt;, embedded finance, shrinking branch footprints, and self-service regulation such as PSD3 and eIDAS 2.0.&lt;/p&gt;

&lt;p&gt;Those models assume the customer can authenticate digitally. If they cannot sign up, cannot recover, or cannot use a smartphone in their work context, they are unreachable by the product itself.&lt;/p&gt;

&lt;p&gt;That is why the remediation is broader than passkey rollout alone. The article recommends:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;instrument the login funnel first&lt;/li&gt;
&lt;li&gt;fix client-side failure causes before optimizing backend success rates&lt;/li&gt;
&lt;li&gt;match credentials to segment, not ideology&lt;/li&gt;
&lt;li&gt;use &lt;strong&gt;supervised onboarding and cross-device credential provisioning&lt;/strong&gt; for customers who cannot complete enrollment alone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Corbado is a passkey observability and adoption platform for large B2C enterprises.&lt;/p&gt;

&lt;p&gt;The big takeaway: if your denominator starts with “active users,” your digitization KPI is already biased. Read the &lt;a href="https://www.corbado.com/blog/digital-identity-gap" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Why the FBI Is Pushing Device-Bound Passkeys</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Tue, 12 May 2026 08:13:07 +0000</pubDate>
      <link>https://dev.to/vdelitz/why-the-fbi-is-pushing-device-bound-passkeys-155d</link>
      <guid>https://dev.to/vdelitz/why-the-fbi-is-pushing-device-bound-passkeys-155d</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjo8j4x08ue5pkxgderl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzjo8j4x08ue5pkxgderl.png" alt="FBI Operation Winter Shiled" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The FBI finally said the quiet part out loud
&lt;/h2&gt;

&lt;p&gt;Operation Winter SHIELD matters because the FBI is no longer talking about authentication as a generic “use MFA” problem. It explicitly tells organizations to adopt phishing-resistant authentication, prioritize high-impact accounts, and deploy &lt;strong&gt;FIDO2-compliant security keys or device-bound passkeys&lt;/strong&gt; for authentication, remote access, and critical systems.&lt;/p&gt;

&lt;p&gt;That is a different message from the older “turn on MFA everywhere” playbook. The same guidance also says to &lt;strong&gt;eliminate SMS-based MFA&lt;/strong&gt; and &lt;strong&gt;disable legacy authentication&lt;/strong&gt;. That is the real shift.&lt;/p&gt;

&lt;p&gt;Microsoft added useful context around the attack pressure behind this move: &lt;strong&gt;7,000 password attacks per second&lt;/strong&gt; in 2024, with &lt;strong&gt;97% of identity attacks&lt;/strong&gt; involving password spray or brute force. If your login stack still depends on passwords plus phishable backup factors, attackers already know where to aim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why “MFA” is no longer a useful endpoint
&lt;/h2&gt;

&lt;p&gt;A lot of teams still treat MFA as the finish line. It is not.&lt;/p&gt;

&lt;p&gt;SMS codes, OTP apps, and push approvals all improve things compared to passwords alone, but they are still vulnerable to phishing and real-time relay attacks. Winter SHIELD reflects that reality. The FBI guidance is not asking for one more factor. It is asking for a factor that is structurally harder to phish.&lt;/p&gt;

&lt;p&gt;That aligns with broader U.S. guidance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CISA&lt;/strong&gt; calls phishing-resistant MFA the gold standard&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FIDO/WebAuthn&lt;/strong&gt; is the only widely available phishing-resistant authentication model CISA points to&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NIST&lt;/strong&gt; says properly implemented syncable authenticators can be phishing-resistant and support &lt;strong&gt;AAL2&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why passkeys matter in 2026. They improve both security and usability. The source article cites Microsoft data showing passkey sign-ins succeed about &lt;strong&gt;98%&lt;/strong&gt; of the time, versus &lt;strong&gt;32%&lt;/strong&gt; for passwords.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the FBI specifically mentions device-bound passkeys
&lt;/h2&gt;

&lt;p&gt;This is the nuance many teams will miss.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;device-bound passkey&lt;/strong&gt; stays on one physical device and does not sync through a cloud keychain. A synced passkey, by contrast, is available across devices connected to platforms like iCloud Keychain or Google Password Manager.&lt;/p&gt;

&lt;p&gt;The FBI’s wording makes sense because Winter SHIELD focuses on &lt;strong&gt;administrators, executives, remote access, and critical systems&lt;/strong&gt;. In those environments, assurance and administrative control often matter more than portability.&lt;/p&gt;

&lt;p&gt;Here is the practical tradeoff:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Best fit&lt;/th&gt;
&lt;th&gt;Main advantage&lt;/th&gt;
&lt;th&gt;Main tradeoff&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Device-bound passkeys&lt;/td&gt;
&lt;td&gt;Workforce IAM, privileged access, critical systems&lt;/td&gt;
&lt;td&gt;Stronger device control and cleaner trust boundaries&lt;/td&gt;
&lt;td&gt;Less flexible recovery and cross-device use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Synced passkeys&lt;/td&gt;
&lt;td&gt;CIAM, broad employee adoption, public-facing login&lt;/td&gt;
&lt;td&gt;Better portability, recovery, and adoption&lt;/td&gt;
&lt;td&gt;Less tightly bound to a managed enterprise device&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This does &lt;strong&gt;not&lt;/strong&gt; mean synced passkeys are weak. It means the assurance model should match the use case.&lt;/p&gt;

&lt;h2&gt;
  
  
  What rollout teams should do next
&lt;/h2&gt;

&lt;p&gt;If you read Winter SHIELD as an implementation guide, the sequencing is pretty clear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inventory phishable auth paths, especially SMS MFA, push-only approvals, and legacy protocols&lt;/li&gt;
&lt;li&gt;Rank accounts by impact, not by organizational chart&lt;/li&gt;
&lt;li&gt;Move admins, remote access users, executives, and critical operators first&lt;/li&gt;
&lt;li&gt;Use device-bound passkeys or FIDO2 security keys where device governance is essential&lt;/li&gt;
&lt;li&gt;Use synced passkeys where recovery and multi-device access are required&lt;/li&gt;
&lt;li&gt;Remove fallback paths, or the strongest method will be bypassed by the weakest one&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point is easy to underestimate. A passkey rollout does not buy much if legacy auth or SMS remains the convenient recovery path.&lt;/p&gt;

&lt;p&gt;For workforce IAM, Winter SHIELD is really about shrinking escape hatches. For CIAM, the takeaway is different: design toward phishing-resistant login as the long-term baseline, but do not force high-assurance enterprise assumptions onto mass-market customer journeys.&lt;/p&gt;

&lt;p&gt;Read the &lt;a href="https://www.corbado.com/blog/fbi-operation-winter-shield-passkeys" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>3 Things Teams Still Underestimate When Rolling Out Passkeys</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Thu, 07 May 2026 07:17:38 +0000</pubDate>
      <link>https://dev.to/vdelitz/3-things-teams-still-underestimate-when-rolling-out-passkeys-1cca</link>
      <guid>https://dev.to/vdelitz/3-things-teams-still-underestimate-when-rolling-out-passkeys-1cca</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmxs7wol7n3spe4s3n6w.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvmxs7wol7n3spe4s3n6w.jpeg" alt="Corbado Passkey Benchmark 2026" width="800" height="732"&gt;&lt;/a&gt;For World Passkey Day, we published the &lt;strong&gt;Passkey Benchmark 2026&lt;/strong&gt; to look at what passkey adoption actually looks like in real deployments.&lt;/p&gt;

&lt;p&gt;One thing became clear very quickly: shipping passkeys is only one part of the problem.&lt;/p&gt;

&lt;p&gt;What teams often underestimate is everything around &lt;strong&gt;adoption, fallback, and operational visibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here are three recurring patterns from the benchmark.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Readiness is not the main bottleneck anymore
&lt;/h1&gt;

&lt;p&gt;Mobile passkey readiness is already at &lt;strong&gt;97–99%&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That means many teams are no longer blocked by platform support. The bigger challenge is converting ready users into actual passkey users.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Enrollment is highly sensitive to rollout quality
&lt;/h2&gt;

&lt;p&gt;Passkey enrollment can reach up to &lt;strong&gt;83%&lt;/strong&gt; when the prompt and flow are designed well.&lt;/p&gt;

&lt;p&gt;This is an important reminder that implementation quality matters. Prompt timing, UX clarity, and recovery setup directly affect passkey creation.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Conditional UI is the most underused UX lever
&lt;/h2&gt;

&lt;p&gt;When passkeys surface directly in the login field (Conditional UI), desktop logins complete &lt;strong&gt;94%&lt;/strong&gt; of the time.&lt;/p&gt;

&lt;p&gt;Most teams still trigger passkeys via a button or modal — moving them into the input field changes the outcome dramatically.&lt;/p&gt;




&lt;p&gt;If you are building or rolling out passkeys, these are the areas worth paying close attention to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full benchmark:&lt;/strong&gt; &lt;a href="https://www.corbado.com/passkey-benchmark-2026" rel="noopener noreferrer"&gt;Passkey Benchmark 2026&lt;/a&gt;&lt;/p&gt;

</description>
      <category>passkey</category>
      <category>cybersecurity</category>
      <category>webaut</category>
    </item>
    <item>
      <title>Why Hardware-Bound Passkeys Still Struggle</title>
      <dc:creator>vdelitz</dc:creator>
      <pubDate>Wed, 06 May 2026 13:06:48 +0000</pubDate>
      <link>https://dev.to/vdelitz/why-hardware-bound-passkeys-still-struggle-3iah</link>
      <guid>https://dev.to/vdelitz/why-hardware-bound-passkeys-still-struggle-3iah</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4fvfzy6mddv354uvwra.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4fvfzy6mddv354uvwra.png" alt="Why Hardware-Bound Passkeys Still Struggle" width="720" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hardware-bound passkeys offer AAL3 assurance, but synced passkeys dominate consumer adoption. Here’s why distribution and UX matter more. &lt;/p&gt;

&lt;h2&gt;
  
  
  Hardware-bound passkeys have a market problem, not a crypto problem
&lt;/h2&gt;

&lt;p&gt;Hardware-bound passkeys are the strongest consumer passkey model on paper. The private key stays inside a physical secure element, which is why they can reach NIST AAL3, while synced passkeys are capped at AAL2.&lt;/p&gt;

&lt;p&gt;But consumer adoption tells a different story.&lt;/p&gt;

&lt;p&gt;The FIDO Alliance Authentication Barometer 2024 shows that hardware-bound passkey activation in consumer banking is still below 5 percent in 2025. That is the core tension: the highest-assurance option exists, standards are mature, and yet almost nobody uses it at scale in consumer apps.&lt;/p&gt;

&lt;p&gt;The reason is not weak hardware. It is distribution and default UX.&lt;/p&gt;

&lt;p&gt;Apple and Google control over 99 percent of mobile share, and they decide which passkey option users see first. Synced passkeys get the prime placement through iCloud Keychain and Google Password Manager. A hardware authenticator usually sits one to three clicks deeper. Once that prompt hierarchy is set, even strong FIDO2 security keys or FIDO2 smart cards start the race from behind.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real split: storage policy changes the whole deployment model
&lt;/h2&gt;

&lt;p&gt;At the protocol level, synced and hardware-bound credentials are both WebAuthn credentials. The difference is where the private key lives and whether it can be recovered from the cloud.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Key storage&lt;/th&gt;
&lt;th&gt;Recovery&lt;/th&gt;
&lt;th&gt;Assurance&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Synced passkeys&lt;/td&gt;
&lt;td&gt;Cloud-synced manager like iCloud Keychain or Google Password Manager&lt;/td&gt;
&lt;td&gt;Easy across devices&lt;/td&gt;
&lt;td&gt;AAL2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hardware-bound passkeys&lt;/td&gt;
&lt;td&gt;Physical secure element on a security key, smart card, or TPM&lt;/td&gt;
&lt;td&gt;Harder, often manual&lt;/td&gt;
&lt;td&gt;AAL3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That storage-policy difference drives everything downstream:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Regulatory fit: hardware-bound credentials align better with stricter possession-factor requirements such as PSD2 and PSD3 interpretations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Recovery burden: synced passkeys recover smoothly, while hardware loss can push users into risky fallback flows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consumer behavior: most users choose the default option that appears in the autofill flow.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why WebAuthn Conditional UI matters so much. It favors the credential manager already integrated into the platform. Hardware is technically supported, but rarely promoted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security keys and smart cards face different bottlenecks
&lt;/h2&gt;

&lt;p&gt;The consumer race is mostly a contest between two hardware forms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;FIDO2 security keys, usually sold directly to users&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;FIDO2 smart cards, often distributed by banks or issuers&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each has a clear weakness.&lt;/p&gt;

&lt;p&gt;Security keys are expensive for broad consumer rollout. A typical device costs 40 to 80 USD, which works in enterprise settings but not for mainstream consumer login.&lt;/p&gt;

&lt;p&gt;Smart cards solve distribution better because banks already issue physical cards. They can also fit regulated journeys like transaction confirmation and account recovery. But they depend heavily on NFC passkey authentication, and that is where deployment gets messy. Android NFC behavior varies across manufacturers, and a tap flow that works on one device may fail on another.&lt;/p&gt;

&lt;p&gt;So the market is not blocked by cryptography. It is blocked by prompt design, NFC fragmentation, recovery design, and support economics.&lt;/p&gt;

&lt;h2&gt;
  
  
  The winner will combine hardware with observability and routing
&lt;/h2&gt;

&lt;p&gt;This is why passkey adoption engineering matters more than many teams expect.&lt;/p&gt;

&lt;p&gt;A hardware vendor can ship excellent silicon and still lose if it cannot answer basic deployment questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did the user ever see the hardware option?&lt;/li&gt;
&lt;li&gt;Did they abandon at the NFC tap?&lt;/li&gt;
&lt;li&gt;Did the browser suppress the preferred path?&lt;/li&gt;
&lt;li&gt;Did the relying party trigger unnecessary recovery?&lt;/li&gt;
&lt;li&gt;That is an observability problem.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The article’s strongest takeaway is simple: hardware alone will not win consumer authentication. The winner will pair hardware with passkey observability, device-aware routing, and continuous iteration across broken browser and OS combinations.&lt;/p&gt;

&lt;p&gt;In other words, the best product is not necessarily the strongest authenticator. It is the one that can get users through the full ceremony reliably.&lt;/p&gt;

&lt;p&gt;Banks have a real opening here because they already control card distribution and operate under stronger regulatory pressure. Hardware vendors also have a path, but only if they move beyond device sales into software, onboarding, recovery, and measurement.&lt;/p&gt;

&lt;p&gt;If you are evaluating device-bound passkeys for consumer use, the practical question is no longer “Is the hardware secure enough?” It is “Can we make this usable, measurable, and recoverable at scale?”&lt;/p&gt;

&lt;p&gt;Find out more in the &lt;a href="https://www.corbado.com/blog/hardware-bound-passkeys-consumer-race" rel="noopener noreferrer"&gt;full breakdown&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>passkey</category>
      <category>webauth</category>
    </item>
  </channel>
</rss>
