Web Authentication API (WebAuthn / FIDO2 / Passkeys)

WebAuthn (W3C + FIDO2) is a browser and platform API for phishing-resistant public-key authentication; the server issues a challenge, the authenticator (hardware key, platform biometric, or synced passkey) signs it, and the server verifies the signature — eliminating password transmission entirely.

Evaluated Mar 06, 2026 (0d ago) vW3C WebAuthn Level 3 (2023); FIDO2; Passkeys (CTAP2.1)
Homepage ↗ Security webauthn fido2 passkeys auth security mfa biometric
⚙ Agent Friendliness
56
/ 100
Can an agent use this?
🔒 Security
94
/ 100
Is it safe for agents?
⚡ Reliability
61
/ 100
Does it work consistently?

Score Breakdown

⚙ Agent Friendliness

MCP Quality
--
Documentation
82
Error Messages
68
Auth Simplicity
55
Rate Limits
90

🔒 Security

TLS Enforcement
100
Auth Strength
99
Scope Granularity
80
Dep. Hygiene
88
Secret Handling
98

WebAuthn is the gold standard for phishing-resistant authentication: private keys never leave the authenticator, challenges are origin-bound, and there are no shared secrets to steal. Requires HTTPS (or localhost) — no exceptions.

⚡ Reliability

Uptime/SLA
0
Version Stability
85
Breaking Changes
88
Error Recovery
72
AF Security Reliability

Best When

You are building user-facing authentication that must be phishing-resistant, and your users have access to a FIDO2 authenticator (modern phone, Mac, Windows Hello, or hardware key).

Avoid When

You need fully automated or headless authentication flows — WebAuthn's user-presence requirement makes it incompatible with non-interactive agent pipelines.

Use Cases

  • Implement passkey (synced FIDO2 credential) registration and login for a web application so users authenticate with Face ID, Touch ID, or Windows Hello without passwords
  • Add hardware security key (YubiKey, FIDO token) support as a phishing-resistant MFA step after password verification
  • Perform server-side attestation verification during credential registration to enforce authenticator policy (e.g., require enterprise hardware tokens)
  • Store and manage credential IDs and public keys server-side using a library like py_webauthn or SimpleWebAuthn to handle the full assertion verification flow
  • Implement cross-device authentication flows where a passkey stored on a phone is used to authenticate on a desktop browser via QR code (CTAP2 hybrid transport)

Not For

  • Headless or non-browser agent contexts — WebAuthn requires a user-present authenticator interaction; it cannot be automated or called without a human and a FIDO2 device
  • Server-to-server machine authentication — use client certificates or OAuth Client Credentials instead; WebAuthn is designed for human presence verification
  • Simple MFA via TOTP codes — WebAuthn is significantly more complex to implement; use TOTP (RFC 6238) if phishing resistance is not a hard requirement

Interface

REST API
Yes
GraphQL
No
gRPC
No
MCP Server
No
SDK
Yes
Webhooks
No

Authentication

Methods: none
OAuth: No Scopes: No

WebAuthn is an authentication standard. Server-side verification libraries (py_webauthn, SimpleWebAuthn, webauthn4j) are open-source with no auth requirements. Managed FIDO2 services (Hanko, Passage) use their own API keys.

Pricing

Model: free
Free tier: Yes
Requires CC: No

The WebAuthn standard and FIDO2 spec are free and open. Open-source server libraries (py_webauthn MIT, SimpleWebAuthn MIT) are free. Costs arise only if using a managed passkey service.

Agent Metadata

Pagination
none
Idempotent
Partial
Retry Guidance
Not documented

Known Gotchas

  • rpID (Relying Party ID) must exactly match the effective domain of the page — including subdomains — or the browser silently blocks the ceremony; always derive rpID from window.location.hostname at runtime
  • Challenge must be cryptographically random and single-use; storing challenges in an in-memory map without expiry enables replay attacks — always expire challenges (e.g., 5-minute TTL) server-side
  • Signature counter validation: if the stored counter equals or exceeds the authenticator's counter, reject the assertion as a potential credential clone — many implementations skip this check
  • CBOR encoding of authenticatorData must be parsed server-side (not JSON); libraries that incorrectly decode AAGUID or attestation formats will silently corrupt credential storage
  • Cross-device (hybrid) flows using QR codes require BLE and the CTAP2 hybrid transport; server-side code does not change but the UX flow is entirely different and fails silently if the platform does not support caBLE

Alternatives

Full Evaluation Report

Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for Web Authentication API (WebAuthn / FIDO2 / Passkeys).

$99

Scores are editorial opinions as of 2026-03-06.

5215
Packages Evaluated
26151
Need Evaluation
173
Need Re-evaluation
Community Powered