This extension uses a native messaging host to communicate with the system's fingerprint reader. This allows you to use your laptop's built-in biometrics for WebAuthn/FIDO2 development.
Ensure your system has the necessary dependencies installed for biometric support.
The native host use fprintd to verify your identity.
- Install:
sudo apt install fprintd libpam-fprintd
- Enroll Fingerprint:
Ensure you have at least one fingerprint enrolled.
fprintd-enroll
- Verify:
Run
fprintd-verifyin your terminal to ensure it works correctly.
- Open Chrome and navigate to
chrome://extensions. - Enable Developer Mode (top right toggle).
- Click Load unpacked and select the
extension/folder from this repository. - Important: Note the Extension ID generated (e.g.,
aofdjdfdpmfeohecddhgdjfnigggddpd). You will need this for the next step.
- Open Firefox and navigate to
about:debugging. - Click on This Firefox.
- Click Load Temporary Add-on and select
manifest.jsonfrom theextension/folder. (Note: Temporary add-ons are removed when Firefox restarts. For permanent use, the Extension IDwebauthnlinux@samveen.github.iois pre-registered in the installer.)
Navigate to the native/ directory and run the installation script with your preferred options.
Pass your Extension ID to the script:
cd native
./install.sh --chrome <YOUR_EXTENSION_ID>cd native
./install.sh --firefoxIf you run the script without any arguments, it will interactively ask which browsers to install for:
./install.sh- Creates a manifest file
io.github.samveen.webauthnlinux.json. - Copies the host script to
~/.local/bin/webauthnlinux_host.py. - Automatically populates the manifest with the correct path to the new location.
- Registers it in
~/.mozilla/native-messaging-hosts/(Firefox). - Registers it in
~/.config/google-chrome/NativeMessagingHosts/(Chrome). - Registers it in
~/.config/chromium/NativeMessagingHosts/(Chromium). - Sets correct permissions for the Python script.
You can run the included check script to verify your environment:
./check_fingerprint.sh- Go to a WebAuthn test page (e.g., WebDevAuthn Web Tool).
- Open the WebAuthnLinux extension popup.
- Click Unlock with Fingerprint.
- You should see a prompt to swipe your finger on the reader (or a system notification/terminal output if you started the browser from a terminal).
- Native Host Errors: Check the browser's background page console (Chrome:
chrome://extensions-> background page link). - Chrome ID Mismatch: If you reload the extension and the ID changes, you MUST re-run
install.shwith the new ID. - Permissions: Ensure
webauthnlinux_host.pyis executable. Theinstall.shscript should handle this. - fprintd-verify: If the script fails to verify, try running
fprintd-verifymanually in a terminal to see if your hardware is responding.