WebAuthn and Passkey Awesome
Demos
- DUO: WebAuthn Demo - A Demonstration of the WebAuthn Specification https://webauthn.io/
- Adam Powers: WebAuthn Demo - A set of FIDO2 / WebAuthn demo servers. Live: https://webauthn.org
- Anders Åberg: .NET library for FIDO2 Demo - A working implementation library + demo for FIDO2 and WebAuthn using .NET. https://fido2.azurewebsites.net/
- Auth0: WebAuthn Demo - Probably the best WebAuthn flow demo
- Google: WebAuthn Demo - An example Java Relying Party implementation of the WebAuthn specification. https://webauthndemo.appspot.com
- Yubico: WebAuthn Demo - Provides technical details of WebAuthn data flow and includes a playground to test a U2F/FIDO2 key as a second factor or passwordless key.
- jcjones: WebAuthn.bin.coffee DEMO - A simple site for testing Web Authentication https://webauthn.bin.coffee/
- FIDO Alliance: Interop WebApp - As simple test app for FIDO2 servers
- Spomky-Labs: Webauthn Demo - a demo based on Symfony and the PHP framework web-auth/webauthn-framework
- Yuriy Ackermann: FIDO2 Demos - A set of demos for "Introduction to WebAuthn API"
- Shane Weeden: FIDO2 Viewer - This is a free, simple, standalone-in-the-browser viewer for FIDO2 attestation and assertion payload inspection.
- Xavier Renard: Webauthn Demo - A working WebAuthn demo based on java Spring Boot and react.js.
- Anders Rundgren: FIDO Web Pay - Public FIDO-based "wallet" demo and associated standards proposal.
- MasterKale: SimpleWebAuthn Demo - A working instance of the SimpleWebAuthn example project showcasing both its server and browser libraries.
- MasterKale: WebAuthn Debugger - A WebAuthn registration and authentication response previewer.
- WebAuthn Viewer - A GUI Based WebAuthn API response viewer.
- Chris Keogh: dotnetcore IdentityServer4 DEMO - A WebAuthN demo using dotnetcore and the FIDO2.NET library that integrates passwordless auth with IdentityServer4.
- Firstyear: Webauthn RS demo and compatability tester - A demo of Webauthn using Webauthn-RS, with WASM browser components and an exhaustive device compatibility and stress tester.
- webauthn-skeleton: Node.js/Koa application - This is a working skeleton of a Node.js/Koa application with passwordless login (Web Authentication API, WebAuthN, FIDO2).
Server Libs
FIDO CERTIFIED™
LINE: FIDO2 Server - FIDO2(WebAuthn) server officially certified by FIDO Alliance and Relying Party examples.FIDO CONFORMANT
Anders Åberg: .NET library for FIDO2 - A working implementation library + demo for fido2 and WebAuthn using .NETFIDO CONFORMANT
WebAuthn4J Project: WebAuthn4J - A portable Java library for WebAuthn server side verificationFIDO CONFORMANT
WebAuthn Go library - WebAuthn library written in Go (replaces the archived and deprecated DUO: WebAuthn Go library).FIDO CONFORMANT
cedarcode: WebAuthn Ruby - Ruby implementation of a WebAuthn Relying PartyFIDO CONFORMANT
MasterKale: @simplewebauthn/server - WebAuthn, Simplified. A TypeScript-first Node library for simpler WebAuthn integration. Supports use in TypeScript and JavaScript projects. Partner library to the front end @simplewebauthn/browser (see Client Libs).FIDO CONFORMANT
Eclipse Vert.x: WebAuthn - Reactive WebAuthn library for Eclipse Vert.x. Works with any Vert.x related framework: Vert.x Web, Quarkus, ES4X, etc....FIDO CONFORMANT
Madwizard.org: WebAuthn PHP library - WebAuthn server library for PHPFIDO CONFORMANT
Spomky-Labs: WebAuthn Framework - This framework contains PHP libraries and Symfony bundle to allow developpers to integrate FIDO2 authentication mechanism into their web applications.- Duo: py_webauthn - Pythonic WebAuthn. A Python3 implementation of the WebAuthn API focused on making it easy to leverage the power of WebAuthn.
- Yubico: Java WebAuthn Server - Server-side Web Authentication library for Java.
- Adam Powers: FIDO2 lib
- Nov Matake: Ruby WebAuthn Lib - W3C Web Authentication API (a.k.a. WebAuthN / FIDO 2.0) RP library in Ruby
- Yubico: python-fido2 - FIDO2 Client and Server lib
- Tangui: Wax - Elixir implementation of WebAuthn
- Suby Raman: redux-webauthn - Redux middleware for registering and authenticating users with the Web Authentication API (FIDO2).
- Firstyear: WebAuthn-RS - An implementation of Passkeys and Webauthn components for Rust web servers.
- Koesie10: WebAuthn - Go/JS WebAuthn Library for easy Server/Client integation
- SharpLab: Spring-Security-WebAuthn - Unofficial WebAuthn module for the Spring Security project
- Wallix: @webauthn/server - A NodeJS library containing easy-to-use helpers to integrate FIDO2. Works in pair with @webauthn/client.
- asbiin: laravel-webauthn - A Laravel adapter for the WebAuthn Framework (from Spomky-Labs).
- e3b0c442: warp - A framework-independent Relying Party implemnetation for Go
- fumieval: webauthn - Fledgling Haskell implementation
- lbuchs: PHP Webauthn - A simple PHP WebAuthn (FIDO2) server library
- Robur: webauthn - An IO-agnostic WebAuthn server implementation written in OCaml
Client Libs
- Yubico: python-fido2 - Client Lib to talk to a hardware authenticators over USB HID
- Yubico: libfido2 - C client library and command-line tools to communicate with a FIDO device over USB, and to verify attestation and assertion signatures.
- keys.pub: go-libfido2 - Go client library (wraps Yubico: libfido2)
- Lyo Kato: iOS Webauthn Kit - This library provides you a way to handle W3C Web Authentication API (a.k.a. WebAuthN / FIDO 2.0) easily.
- Yubico: Mobile iOS SDK (YubiKit) - YubiKit is an iOS library provided by Yubico to interact with YubiKeys on iOS devices. Works with other FIDO2 devices as well
- Mozilla: authenticator-rs - Rust library to interact with Security Keys, used by Firefox
- Firstyear: webauthn-authenticator-rs - Rust library for interacting with Security Keys, based on authenticator-rs, but with extensions to support CTAP2.1 and NFC
- COTECH: Hardware Security SDK - Android library to interact with FIDO2 and U2F security keys over NFC and USB. Also provides a WebAuthn-WebView bridge.
- MasterKale: @simplewebauthn/browser - WebAuthn, Simplified. A TypeScript-first browser library for simpler WebAuthn integration. Supports use in TypeScript and JavaScript projects. Partner library to the back end @simplewebauthn/server (see Server Libs). Also works with Duo's py_webauthn.
Software Authenticators
- Damian Czaja: android-webauthn-token - A FIDO2 WebAuthn BLE Android phone token
- Fabian Henneke: WearAuthn - FIDO2 Bluetooth HID/NFC soft token for Wear OS watches with support for resident keys
- Radoslav Bodó: soft-webauthn - Python software webauthn token
- adessoSE: softauthn - FIDO2 authenticator emulator/software token in Java
- Daniel Stiner: Rust U2F - U2F security token emulator written in Rust
- Firstyear: webauthn-authenticator-rs - Contains a software webauthn token with ephemeral attestation CA allowing richer testing of device policies
Hardware Authenticators
FIDO CERTIFIED™
SoloKeys - Solo is an open source FIDO2 security key, and you can get one at solokeys.comFIDO CONFORMANT
Conor Patrick: U2F Zero - U2F Zero is an open source U2F token for 2 factor authentication.- Trezor - Trezor is an open source hardware wallet with FIDO/U2F and FIDO2/WebAuthn functionality.
- Google: OpenSK - OpenSK is an open-source implementation for security keys written in Rust that supports both FIDO U2F and FIDO2 standards.
- Nitrokey - Nitrokey is developing/producing different types of open source and open hardware FIDO2 security keys (check for the "Nitrokey FIDO2" and "Nitrokey 3" related repositories).
Dev tools
- Shane B Weeden: FIDO2 Postman Clients - FIDO2 Postman clients to easily test your FIDO2 API endpoints.
- MasterKale: WebAuthn Previewer - A simple website for previewing WebAuthn attestations and assertions
- Firstyear: Webauthn RS compatability tester - A webauthn device and browser stress tester that can identify flaws in implementations and has already found bugs in Firefox, Safari, Android and more.
- Descope: VirtualWebAuthn Test Tool - A GO package to automate testing of a relying party WebAuthn server implementation without requiring a browser or an actual authenticator.
- FIDO MDS Explorer - A user-friendly web UI to explore the FIDO Metadata Service repository, which contains detailed characteristics and attestation certificates of authenticators registered to the FIDO Alliance.
- WebAuthn Playground - A web page (no server) to test WebAuthn operations with configurable parameters, and view/parse responses.
Resources
Tutorials
- Introduction to WebAuthn API
- Passkeys.dev - A greate guide on starting with passkeys
- WebAuthn Guide: DUOSEC
- Yubico Labs: WebAuthn Starter Kit Reference Deployment & Reference Architecture - How an identifier-first flow helps migrate users towards passwordless. Integrates Yubico's java-webauthn-server with AWS Lambda and AWS Cognito. Includes example web and iOS clients.
- Yubico Labs: Securing a Website with Passwordless Authentication
- Google: Your First WebAuthn - An awesome WebAuthn introduction by Eiji Kitamura @ Google
- FIDO Alliance: How To FIDO - A definitive guide on good FIDO UI/UX
Articles
- Yuriy Ackermann: WebAuthn/FIDO2 Blog
- Auth0: Introduction to Web Authentication
- Watahani のブログ - 技術メモとか料理ネタとか
- Eiji Kitamura: Credential Management API and best practices
- FIDO блог Юрия Аккерманна на Хабре - Статьи о FIDO на русском
- Ken¥d のブログ - セキュリティ, Android, Cloud Nativeについてまとめるブログです
- gebo: CTAP2 お勉強メモ ブログ
- 上野博司/super_reader: Yahoo! JAPANでの生体認証の取り組み(FIDO2サーバーの仕組みについて
- パスワードレス認証WebAuthnの勘所と対応状況
- パスワードの不要な世界はいかにして実現されるのか - FIDO2 と WebAuthn の基本を知る
- Damien Bod: ASP.NET CORE IDENTITY WITH FIDO2 WEBAUTHN MFA - This article shows how Fido2 WebAuthn could be used as 2FA and integrated into an ASP.NET Core Identity application.
- Paul Stamatiou: Getting started with security keys - How to stay safe online and prevent phishing with FIDO2, WebAuthn and security keys. (Less technical but a very usefull article)
- Adam Powers FIDO Alliance: The Truth about Attestation - A woundeful tech article about attestations
- Henrik Loeser (data-henrik): FIDO2-related blog articles - FIDO2 keys on Linux and for cloud services
- Tim Brust: Security Evaluation of Multi-Factor Authentication in Comparison with the Web Authentication API - A master's thesis comparing WebAuthn with other multi-factor authentication methods, such as HOTP, TOTP or U2F.
- Stavros Korokithakis: How to use FIDO2 USB authenticators with SSH - Nice tutorial on how to use FIDO2 to authenticate SSH sessions. As short as possible, but as detailed as necessary to understood all important topics (e.g. resident vs. non-resident keys).
Slides
- Yuriy Ackermann: WebAuthn Overview
- Implementing FIDO on Android Side using com.google.android.gms.fido.fido2
- WebAuthn Works: Slides - A library of slides by Yuriy Ackermann and WebAuthn Works in English and Russian
Books
- Getting started with WebAuthn - コミックマーケット95で頒布した同人誌「Getting started with WebAuthn」の電子版(PDF)です。
- Password authentication for web and mobile apps - A book by Dmitry Chestnykh @dchest about authentication on web and mobile. Talks in depth about correct password authenticatoin, and additionally introduces to FIDO2/Webauthn
Other
- Adam Powers: WebAuthn Logos - An awesome logos by Adam Powers
FAQ
- What is
FIDO CERTIFIED™
?
FIDO CERTIFIED
means that implementation has passed FIDO conformance tools, passed interoperability even, and has achieved official FIDO Alliance certification. A registered FIDO Alliance Trademark.
- What is
FIDO CONFORMANT
?
FIDO CONFORMANT
means that implementation has passed FIDO conformance tools (as reported by the author), thus can claim that it is conformant with FIDO2 specifications. If you want to get access to the conformance tools, you can do it here https://fidoalliance.org/certification/functional-certification/conformance/. If you have passed conformance tools, send me a DM or a tweet @herrjemand with a screenshot of passing the tests.
- FIDO2 or WebAuthn?
FIDO2 is the name of the standard. WebAuthn is just browser JS API to talk to the authenticators. So correct way to call your server is "FIDO2 Server" and to say "Authentication with FIDO2".
- I would like to advertise my company product here!
Please don't. The advertisement you can get is by writing a good, deep, technical article, or open sourcing your server or/and tools is much better for you, than cheap show off. People will buy your company product if you show them that you know what you are doing.
Otherwise we have strict no ads policy. We will only link to open source repos and actual articles. No company websites.
License
This work is licensed under a Creative Commons Attribution 4.0 International License.